我目前看到一个问题,因为我的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
答案 0 :(得分:1)
发现问题。
当我使用日期> = 26/10/2013时,问题引发了ruby正确返回,并且time_zone与DateTime时间戳(不是当前时间戳)相关联。因此,CET采用后的所有日期都会被自动视为CET。
在数据库级别使用UTC似乎是正确的方法。