ruby – 为什么“23只狗”在2015年11月23日被解析为撬,但“3只狗
发布时间:2020-12-17 01:20:00 所属栏目:百科 来源:网络整理
导读:我在Twitter上找到了以下代码片段(查看源代码的帖子历史记录). [5] pry(main) Date.parse('3 Dogs')ArgumentError: invalid date[6] pry(main) Date.parse('23 Dogs')= Mon,23 Nov 2015 这只是一个撬开的复活节彩蛋吗?如果是这样,为什么这个特定的日期和结
我在Twitter上找到了以下代码片段(查看源代码的帖子历史记录).
[5] pry(main)> Date.parse('3 Dogs') ArgumentError: invalid date [6] pry(main)> Date.parse('23 Dogs') => Mon,23 Nov 2015 这只是一个撬开的复活节彩蛋吗?如果是这样,为什么这个特定的日期和结果?如果它不是一个复活节彩蛋,为什么23只狗解析约会,但3只Dogsdoes不解析? 解决方法
这与Pry无关.如果您检查
Date::parse的文档,您将看到,“如果可选的第二个参数[comp]为真[默认值]且检测到的年份在”00“到”99“的范围内,则将年份视为2位数形成并使它充满.“
这无疑是奇怪的.它检测到“23”在“00”……“30”范围内(但不是“3”或“0”中的任何一个“9”),因此它认为它是一个日期.请注意,范围“31”..“99”中的任何值都会引发异常.我预计“30”是该范围的高端,因为目前11月和11月是30天.然后它似乎丢弃该信息并使用当前年份和月份,并假设该日期为“23”(或者如果输入“31”则提出异常).任何人都可以解释发生了什么的细节? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |