我有一个start_time
列的Event
模型,类型为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。时区utc偏移量为-5小时。这里发生了什么?
纽约位于美国东部时区。它的标准偏移量是UTC-05:00,在冬季月份遵循。
在夏季,夏令时生效,偏移量变为UTC-04:00。
您可以在这里看到纽约的具体时区偏移量变化