正确的 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
有预期的结果。看到不同?第一个示例与第二个示例:
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(我当然也没有注意到),嗖嗖,它起作用了。