Rails 3与ActiveSupport :: TimeWithZone行为的日期不一致

时间:2015-09-02 21:36:39

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

我正在使用旧的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

0 个答案:

没有答案