【问题标题】:Ruby: Offset interpreted differently by Time and DateTimeRuby:时间和日期时间对偏移的解释不同
【发布时间】:2011-04-07 10:21:46
【问题描述】:

有谁知道为什么Time.parse 似乎误解了偏移量??

# Correct:
ruby-1.9.2-p136 > DateTime.parse "2011-04-07T13:53:00-3"
 => Thu, 07 Apr 2011 13:53:00 -0300 

ruby-1.9.2-p136 > Time.parse "2011-04-07T13:53:00-3"
 => 2011-04-07 13:53:00 +0300 

格式似乎没有任何区别:

ruby-1.9.2-p136 :027 > Time.parse "2011-04-07T13:53:00-0300"
 => 2011-04-07 19:53:00 +0300 
ruby-1.9.2-p136 :028 > Time.parse "2011-04-07T13:53:00-03"
 => 2011-04-07 19:53:00 +0300 
ruby-1.9.2-p136 :029 > Time.parse "2011-04-07T13:53:00-03:00"
 => 2011-04-07 19:53:00 +0300 

【问题讨论】:

    标签: ruby parsing time datetimeoffset


    【解决方案1】:

    我认为 Time.parse 会将其转换为您的时区。因此,当您处于 +3 并且您给它的时间为 13.53:00-3 时,您的本地时间将是 19.53:00+3。

    另外,如果您查看Ruby Doc,您会发现 Time#parse 方法只理解RFC 822 中描述的时区缩写和系统时区。

    所以你应该使用“-0300”而不是“-3”。

    【讨论】:

    • 第一部分是有道理的。正如您在下面的示例中看到的那样,我实际上尝试过“-0300”,但结果是一样的。
    • 是的,我看到了。只是想提一下。
    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 2011-05-18
    • 2015-08-26
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    相关资源
    最近更新 更多