ActiveRecord时区不按预期工作

时间:2014-11-21 04:23:10

标签: mysql ruby-on-rails rails-activerecord

我有一个名为Order的模型,它有一个名为expiration的DATETIME(Mysql)列

我执行以下操作:

order = Order.last

wanted_time = Time.use_zone('Pacific Time (US & Canada)') { Time.now.end_of_day.to_datetime }

而want_time给了我:Thu, 20 Nov 2014 23:59:59 -0800

然而,当我这样做时:

order.expiration = wanted_time

当我尝试获取order.expiration时,我得到:

Fri, 21 Nov 2014 07:59:59 UTC +00:00

为什么?如果我特意定义了我想用它存储的区域?

1 个答案:

答案 0 :(得分:0)

请参阅:How to change default timezone for Active Record in Rails?

将application.rb更改为以下行...我猜测rails和db之间存在差异。

config.time_zone ='东部时间(美国和加拿大)' config.active_record.default_timezone ='东部时间(美国和加拿大)'