1

有谁知道为什么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 
4

1 回答 1

2

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

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

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

于 2011-04-07T10:58:31.547 回答