我遇到一个问题,在保存datetime属性时,表单返回-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 ...为什么不发生这种情况?
答案 0 :(得分:0)
我看起来好像zone
属性返回了适用于指定时间的“区域间隔”的名称。因此,在夏季,它将返回“EDT”,但在冬季,它将返回“复活节标准时间”。 (奇怪的是,它使用的是一个缩写而不是另一个,但是嘿......)
因此 使用相同的时区 - 这些只是同一时区内的不同方面:有时它是标准时间,有时是夏令时。
如果您打印Time.now.localtime
,它应显示-05:00以显示东部时间与UTC的当前偏移量为-5小时(即东部时间目前比UTC晚5小时)。
答案 1 :(得分:0)
您是否尝试过使用in_time_zone?