正しいUTC時刻は1805です。時間グループはゾーン-10の0805を示しているため、UTCを取得するには、指定された時刻に10を追加します。したがって、1805です。1805は2400未満なので、同じ日です。
コードが1605を提供している場合、ほぼ確実にタイムゾーンが誤ってゾーン-8に設定されています。これはたまたま太平洋標準時です。
ああ、入力フォーマットがめちゃくちゃになっているようです。観察:
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
期待される結果があります。違いを見ます?最初の例と2番目の例:
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を取り出しました(私は確かにどちらにも気づいていませんでした)そしておっと、それは機能します。