0

我有一个问题,在保存日期时间属性时,表单返回 -04:00 而不是 -05:00

使用 Rails 3.2.3

在 application.rb 中:

config.time_zone = 'Eastern Time (US & Canada)'

将 MySQL 与 mysql2 适配器一起使用

运行@wine.released_at.localtime返回2008-05-15 00:00:00.000000000 -04:00
运行@wine.released_at返回2008-05-15 04:00:00.000000000 Z
运行Time.now.zone返回Eastern Standard Time
运行@wine.released_at.zone返回EDT

我相当困惑。我虽然设置 config.time_zone 应该使 Rails 自动将所有数据库日期时间值转换为设置的 time_zone ......为什么没有发生这种情况?

4

2 回答 2

0

在我看来,该zone属性似乎返回了适用于指定时间的“区域间隔”的名称。因此,在夏季,它将返回“EDT”,但在冬季,它将返回“复活节标准时间”。(奇怪的是它使用一个缩写而不是另一个缩写,但是嘿......)

所以它对两者使用相同的时区 - 这些只是同一时区内的不同方面:有时是标准时间,有时是夏令时。

如果您打印Time.now.localtime它应该向您显示 -05:00 以显示东部时间与 UTC 的当前偏移量为 -5 小时(即东部时间目前比 UTC 晚 5 小时)。

于 2013-01-20T20:45:28.987 回答
0

您是否尝试过使用 in_time_zone?

于 2013-01-20T20:46:50.613 回答