【发布时间】:2015-04-08 10:53:33
【问题描述】:
我的时区配置如下所示
config.time_zone = 'Pacific Time (US & Canada)'
config.active_record.default_timezone = 'Pacific Time (US & Canada)'
当我查询对象的 created_at 时,它会返回一个像这样的值
2.1.5 :070 > b.created_at
=> Tue, 07 Apr 2015 20:49:58 PDT -07:00
创建对象时的DateTime值是这样的
2.1.5 :071 > DateTime.now
=> Wed, 08 Apr 2015 03:49:58 -0700
这意味着我为 created_at 字段获得的值比 PDT 晚了 7 小时。我不明白为什么会发生这种情况。这是因为我的配置中有任何错误吗?
【问题讨论】:
-
AR 会自动将日期时间值转换为相应的时区,具体取决于您的应用配置。
-
日期时间以 UTC 存储在数据库中,即“通用时间”,与格林威治标准时间相同(就我们的目的而言),即“+0 时间”。当它们显示时,它们会转换为您当地的时区。
标签: ruby-on-rails ruby-on-rails-3 activerecord timezone rails-activerecord