Rubygems Chronic无法解析“2010-09-12 3:12 pm”,但可以解析“2010-09-12 3pm”或“last lastday 3:12 pm”?

时间:2010-09-13 07:16:16

标签: ruby rubygems chronic

“2010--9-12 3:12 pm”是慢性Rubygem的弱点似乎很奇怪?有没有办法让它发挥作用? (或其他可以做到的宝石?)我也希望找到一个可以处理2010-09-12 3:12pm UTC或其他时区的解析器,例如PDTPSTUTC+8或{ {1}}

-0700

1 个答案:

答案 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 /