Rails统一DateTime时区为欧洲格式CEST / CET

时间:2013-10-24 19:34:09

标签: ruby-on-rails ruby-on-rails-3

我目前看到一个问题,因为我的Rails应用程序上的系统时间已从CEST(+02:00)更改为CET(+01:00)。

我得到的问题是,由于某种原因,一些DateTime被保存为CET而其他人则作为CEST立即创建记录。问题是,当从数据库中检索数据并使用strftime(“%H:%M”)时,它会打印出错误的值,因此,如果它被保存为CEST,则打印出“10:00”,而如果保存为CET,则打印“09:00”。

如何强制系统始终使用+0200或+0100?

运行Time.zone运行Time.zone.now时,我得到“(格林威治标准时间+01:00)ROME”我得到时间戳+0200。

如何解决这种不一致问题?我的config.time_zone设置为“罗马”。

P.S。我正在使用Rails 3.2.13

1 个答案:

答案 0 :(得分:1)

发现问题。

当我使用日期> = 26/10/2013时,问题引发了ruby正确返回,并且time_zone与DateTime时间戳(不是当前时间戳)相关联。因此,CET采用后的所有日期都会被自动视为CET。

在数据库级别使用UTC似乎是正确的方法。