Ruby 对';2013年12月30日&x27;不正确
Ruby 对';2013年12月30日&x27;不正确,ruby,date,datetime,Ruby,Date,Datetime,DateTime#解析“2013年12月30日星期一00:00:00 UTC+00:00”本周错误。我选择了ISO 8601基于周的年份和周编号%V(基于周的年份的周编号01..53) 格式为“%V-%y”: 2013年12月30日星期一00:00:00 UTC+00:00不是“01-13” 但是如果我使用“%W”格式,结果是正确的(“52-13”) 这是什么?还是我犯了一些错误?对于基于周的周数(%V)应该使用基于周的年(%g): 对于基于周的周数(%V),应使用基于周的年(%g): cday
DateTime#解析“2013年12月30日星期一00:00:00 UTC+00:00”
本周错误。我选择了ISO 8601基于周的年份和周编号%V
(基于周的年份的周编号01..53
)
格式为“%V-%y”
:
2013年12月30日星期一00:00:00 UTC+00:00
不是“01-13”
但是如果我使用“%W”
格式,结果是正确的(“52-13”
)
这是什么?还是我犯了一些错误?对于基于周的周数(%V
)应该使用基于周的年(%g
):
对于基于周的周数(%V
),应使用基于周的年(%g
):
cday、cweek和cyear是基于商业日期的方法
商业:创建一个表示给定星期日期的日期对象。
因此,一年的最后几天可以与新年的开始日期在同一周。
例如,2013年12月的最后几天和2014年1月的开始日期是同一周,因此日期的周数'Mon,2013年12月30日00:00:00 UTC+00:00'在一年中的所有周完成后,将进入下一年的新一周
所以
这些是商业日期,现在检查一下
"Mon, 30 Dec 2013 00:00:00 UTC +00:00".to_date.year ==> 2013
这是正常的一年
cday、cweek和cyear是基于商业日期的方法
商业:创建一个表示给定星期日期的日期对象。
因此,一年的最后几天可以与新年的开始日期在同一周。
例如,2013年12月的最后几天和2014年1月的开始日期是同一周,因此日期的周数'Mon,2013年12月30日00:00:00 UTC+00:00'在一年中的所有周完成后,将进入下一年的新一周
所以
这些是商业日期,现在检查一下
"Mon, 30 Dec 2013 00:00:00 UTC +00:00".to_date.year ==> 2013
这是正常的一年
除了你声称有什么不对之外,我看不出有什么不对。有什么不对吗?@sawa这是不公平的,问题已经清楚地说明了,2013年12月30日
绝对不属于2013年的第一周(第一段)。mudasobwa是对的<代码>2013年12月30日
在ISO 8601年的第一周,在2013年的常规年份,但不在2013年常规年份的第一周。但这与OP声称解析错误无关。解析实际上并没有错。但我想你明白发生了什么。除了你声称有什么不对劲之外,我看不出有什么不对劲。有什么不对吗?@sawa这是不公平的,问题已经清楚地说明了,2013年12月30日
绝对不属于2013年的第一周(第一段)。mudasobwa是对的<代码>2013年12月30日在ISO 8601年的第一周,在2013年的常规年份,但不在2013年常规年份的第一周。但这与OP声称解析错误无关。解析实际上并没有错。但我想你知道发生了什么。
"Mon, 30 Dec 2013 00:00:00 UTC +00:00".to_date.cweek ==> 1
"Mon, 30 Dec 2013 00:00:00 UTC +00:00".to_date.cwday ==>1 (1st week day of week 1 2014(but date is still of 2013)
"Mon, 30 Dec 2013 00:00:00 UTC +00:00".to_date.cwyear ==> 2014
"Mon, 30 Dec 2013 00:00:00 UTC +00:00".to_date.year ==> 2013