似乎很奇怪,"2010--9-12 3:12 It“是慢性Rubygem的一个弱点?有没有办法让它工作呢?(或者其他可以做到这一点的gem?)我还希望找到一个能够处理2010-09-12 3:12pm UTC或其他时区的解析器,比如PDT、PST、UTC+8或-0700
irb(main):001:0> RUBY_VERSION
=> "1.8.7"
irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'chronic'
=> true
irb(main):004:0> Chronic.parse('9/12/2010')
=> Sun Sep 12 12:00:00 -0700 2010
irb(main):005:0> Chronic.parse('9/12/2010 3pm')
=> Sun Sep 12 15:00:00 -0700 2010
irb(main):006:0> Chronic.parse('9/12/2010 3:12pm') # <-- cannot work
=> nil
irb(main):007:0> Chronic.parse('last monday 3:12pm')
=> Mon Sep 06 15:12:00 -0700 2010
irb(main):008:0> Chronic.parse('2010-09-12')
=> Sun Sep 12 12:00:00 -0700 2010
irb(main):009:0> Chronic.parse('2010-09-12 3:12pm') # <-- cannot work
=> nil发布于 2010-09-13 17:18:01
它适用于我在Ruby1.8.7 (2009-06-12 patchlevel 174)上使用Github上的最新Chronic:
>> 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但与您的问题日期不完全匹配。因此,如果你发现了一个bug,那么告诉Chronic的作者可能是值得的,这样他就可以更新测试。
顺便说一句。当你尝试的时候你会得到什么:
require 'time'
puts Time.parse('2010-09-12 3:12pm')因为我得到了正确的答案:Sun Sep 12 15:12:00 +0100 2010 (NB.我在这里使用日光节约时间)。我提到这一点是因为我今天早上看到了一条关于time API in a minor point release问题的模棱两可的推文。
/I3az/
https://stackoverflow.com/questions/3698444
复制相似问题