Это работает для меня, используя последние Chronic
на Github на Ruby 1.8.7 (2009-06-12 patchlevel 174):
>> 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 /