将一周的字符串解析为时间(yyyy-w#)



我正在尝试解析一个每周的字符串,该字符串的html5输入具有类型的"周"可能会返回,返回Ruby中的实际日期或时间。

输入将返回这样的字符串:" 2014-W05",其中W05是一年中的第五周。

这是我尝试的:

2.1.0dev :057 > Time.strptime("2014-W05", "%Y-W%V")
2014-01-01 00:00:00 -0800
2.1.0dev :058 > Date.strptime("2014-W05", "%Y-W%V")
2014-01-01
2.1.0dev :058 > DateTime.strptime("2014-W05", "%Y-W%V")
Wed, 01 Jan 2014 00:00:00 +0000

根据文档:http://apidock.com/ruby/datetime/strftime

%V-基于周的年度(01..53)

感谢您的帮助!

在红宝石日期类(http://www.ruby-doc.org/stdlib-1.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.ch-libdoc/date/rdoc/rdoc/datetime.html ),处理周数应该是%G给出的"一周年"。因此,您要使用:

Date.strptime("2014-W05", "%G-W%V")

所以区别是:

2.1.0 :004 > DateTime.strptime("2014-W05", "%G-W%V")
 => #<DateTime: 2014-01-27T00:00:00+00:00 ((2456685j,0s,0n),+0s,2299161j)>

versus:

2.1.0 :003 > DateTime.strptime("2014-W05", "%Y-W%V")
 => #<DateTime: 2014-01-01T00:00:00+00:00 ((2456659j,0s,0n),+0s,2299161j)>

最新更新