【问题标题】:created_at is different from DateTime.nowcreated_at 与 DateTime.now 不同
【发布时间】:2013-09-23 00:16:12
【问题描述】:

遇到了一个非常棘手的情况,在保存模型实例时,我得到了 9 小时前的 created_at 值。

在执行 DateTime.now 时,我得到了准确的 NOW 时间,以及在 SQL 服务器上执行 NOW() 和 current_timestamp 的时间。

所以我的问题是:

  1. 是否可以覆盖默认的 created_at 设置方法?或者更改时间戳设置器?或者 rails 如何处理 create_at 方法的设置?
  2. 是否有任何配置设置设置?初始化程序,或任何可能指向我设置 created_at 方法的正确方向的东西?

任何帮助将不胜感激

【问题讨论】:

  • 好的,刚刚打电话给product_review.created_at #=> 2013 年 9 月 23 日星期一 00:25:31 UTC +00:00
  • 这意味着时区设置不正确......所以问题应该是如何为 Rails 引擎设置时区?

标签: ruby-on-rails ruby datetime activerecord timestamp


【解决方案1】:

http://www.ruby-doc.org/core-2.0.0/Time.html#method-c-now

Time.now - 返回一个初始化为当前系统时间的 Time 对象。

created_at - 保存了 GMT 时间,在我的例子中它显示 10.00,但我的系统时间是 12.00,因为我比 GMT 早 2 小时。

environment.rb中设置时区:

# config/environment.rb
config.time_zone = "Central Time (US & Canada)"

运行rake time:zones:all 以获取实际列表并使用您需要的列表,例如Central Time (US & Canada)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 2010-09-08
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
相关资源
最近更新 更多