我的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小时。这里发生了什么?
答案 0 :(得分:1)
纽约位于美国东部时区。其标准偏移量为UTC-05:00,冬季后也是如此。
在夏季,daylight saving time生效,偏移量变为UTC-04:00。
You can see the specific time zone offset changes for New York here.