Правильное время UTC равно 1805. Группа времени показывает 0805 в зоне -10, поэтому, чтобы получить UTC, добавьте 10 к данное время. Таким образом, 1805. С 1805 года менее 2400 в тот же день.
Если ваш код дает 1605, то вы почти наверняка зададите часовой пояс некорректно для зоны -8, которая, случается, является стандартным временем в Pacific.
Ага, похоже, что ваш формат ввода испорчен. Соблюдайте:
irb(main):003:0> Time.parse("2008-02-20T8:05:00-010:00")
=> Wed Feb 20 08:05:00 -0700 2008
Я оказался в зоне -7, поэтому это соответствует моему языку. Но
irb(main):004:0> t=Time.parse("2008-02-20T8:05:00-010:00")
=> Wed Feb 20 08:05:00 -0700 2008
irb(main):005:0> t
=> Wed Feb 20 08:05:00 -0700 2008
irb(main):006:0> t.getutc
=> Wed Feb 20 15:05:00 UTC 2008
Я получаю неожиданный результат. Теперь внимание:
irb(main):007:0> t=Time.parse("2008-02-20T8:05:00-10:00")
=> Wed Feb 20 11:05:00 -0700 2008
irb(main):008:0> t.getutc
=> Wed Feb 20 18:05:00 UTC 2008
Там в ожидается результат. Увидеть разницу? Первый пример против второй:
irb(main):004:0> t=Time.parse("2008-02-20T8:05:00-010:00")
irb(main):007:0> t=Time.parse("2008-02-20T8:05:00-10:00")
Я взял паразитные дополнительный 0 из (что я, конечно, не заметил ни) и Свист, он работает.
Возможно, это связано с неявным использованием часового пояса? –
Может быть ... я не знаю! –