rails 4.0.4中相同时区的不同时区偏移量

时间:2014-05-28 15:22:39

标签: ruby ruby-on-rails-4 timezone timezone-offset

我的Event模型带有start_time列,键入DateTime

我正在尝试在不同的时区显示正确的时间。例如:America/New_York。 以下代码用于演示时区utc_offset(以小时为单位)与新时区中UTC日期的实际呈现值之间的差异。

[3] pry(main)> Event.last.start_time
=> Wed, 28 May 2014 13:00:00 +0000
[5] pry(main)> Time.zone = "America/New_York"
=> "America/New_York"
[6] pry(main)> Time.zone.utc_offset / 3600
=> -5
[7] pry(main)> Event.last.start_time.in_time_zone(Time.zone)
=> Wed, 28 May 2014 09:00:00 EDT -04:00

最后一行显示-04:00,而Time.zone utc偏移为-5小时。这里发生了什么?

1 个答案:

答案 0 :(得分:1)

纽约位于美国东部时区。其标准偏移量为UTC-05:00,冬季后也是如此。

在夏季,daylight saving time生效,偏移量变为UTC-04:00。

You can see the specific time zone offset changes for New York here.