我正在使用旧的Rails项目(最近从Rails 2迁移到Rails 3),它有一些现有代码,使用Date.parse将String转换为Date,然后将其放入ActiveRecord模型中它变成了一个ActiveSupport :: TimeWithZone类。
在Rails 2中,这很好用;但是时区的处理在2&之间变化。 3.现在我看到Mac和Mac之间相同代码库的行为不一致。 CentOS的。
在Mac上,日期正确转换为TimeWithZone并保持相同的日期。在CentOS上,TimeWithZone始终转换为实际日期之前的1天。我不确定为什么会发生这种情况,因为两个系统的时区都设置为美国/芝加哥。
以下是发生的事情的样本。
df = Date.parse(a_string)
record.date_with_tz = df # <-- On Mac date_with_tz will have correct date; on CentOS is previous day.
record.save