【问题标题】:ActiveRecord with timezone not working as expected时区的 ActiveRecord 未按预期工作
【发布时间】:2014-11-21 04:23:10
【问题描述】:

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

我执行以下操作:

order = Order.last

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

wanted_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

这是为什么呢?如果我明确定义了我想要存储它的区域?

【问题讨论】:

  • 您在将wanted_time 值分配给order.expiration 后是否更新了订单。如果是,请您也添加该代码

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


【解决方案1】:

看到这个:How to change default timezone for Active Record in Rails?

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

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

【讨论】:

  • 对不起,但这并不能回答我的问题。
  • 您的 AR 时区设置为?
猜你喜欢
  • 2020-12-02
  • 2023-02-02
  • 1970-01-01
  • 2013-02-10
  • 2021-12-01
  • 2018-05-19
  • 2017-06-28
  • 2017-04-23
  • 2019-06-03
相关资源
最近更新 更多