1

「2010--9-12 3:12pm」が Chronic Rubygem の弱点というのは奇妙に思えますか? それを機能させる方法はありますか?(またはそれを行うことができる別の宝石?) また、 、、またはまたは2010-09-12 3:12pm UTCなどの他のタイムゾーンを処理できるパーサーを見つけたいと思っています。PDTPSTUTC+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
4

1 に答える 1

1

Ruby 1.8.7 (2009-06-12 パッチレベル 174) で最新ChronicGithubを使用して動作します。

>> 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 の作成者に通知して、テストを更新できるようにすることをお勧めします。

ところで...試してみると何が得られますか:

require 'time'

puts Time.parse('2010-09-12 3:12pm')

私は正しいので:Sun Sep 12 15:12:00 +0100 2010(NB。ここでは夏時間です)。これについて言及するのは、今朝、タイム API の問題に関するあいまいなツイートをマイナー ポイント リリースで見たからです。

/I3az/

于 2010-09-13T09:18:01.473 に答える