“2010--9-12 3:12 pm”是慢性Rubygem的弱点似乎很奇怪?有没有办法让它发挥作用? (或其他可以做到的宝石?)我也希望找到一个可以处理2010-09-12 3:12pm UTC
或其他时区的解析器,例如PDT
,PST
或UTC+8
或{ {1}}
-0700
答案 0 :(得分:1)
在Ruby 1.8.7(2009-06-12 patchlevel 174)上使用Chronic
上的最新Github对我有用:
>> RUBY_VERSION
=> "1.8.7"
>> require './chronic/lib/chronic'
=> true
>> Chronic.parse('9/12/2010 3:12pm')
=> Sun Sep 12 15:12:00 +0100 2010
>> Chronic.parse('2010-09-12 3:12pm')
=> Sun Sep 12 15:12:00 +0100 2010
在测试套件中有以下测试:
time = parse_now("2006-08-20 7pm")
assert_equal Time.local(2006, 8, 20, 19), time
time = parse_now("2006-08-20 03:00")
assert_equal Time.local(2006, 8, 20, 3), time
但与您的问题日期不完全匹配。因此,如果您发现了一个错误,那么可能值得告知Chronic的作者,以便他可以更新测试。
BTW ......当你尝试时,你会得到什么:
require 'time'
puts Time.parse('2010-09-12 3:12pm')
因为我得到了正确的答案:Sun Sep 12 15:12:00 +0100 2010
(注意。我在这里节省了一天的时间)。我之所以提到这一点是因为我今天早上看到一条含有time API in a minor point release的问题的含糊不清的推文。
/ I3az /