【问题标题】:Ruby on Rails changing time zones for applicationRuby on Rails 更改应用程序的时区
【发布时间】:2012-12-12 06:25:20
【问题描述】:

我的应用程序在 UTC 时区运行了 6 个月以上。这意味着所有 ActiveRecord 和 MongoDB 对象都已在 UTC 时区创建。很好奇,如果我继续更改 application.rb 中的适用设置:

config.time_zone = 'Eastern Time (US & Canada)'

这会将在 UTC 中创建的记录转换为 EST 时区吗? MongoDB 记录呢? (我使用 Mongoid 作为我的 Ruby 驱动程序)。是不是就像在 application.rb 中拨动开关一样简单?

【问题讨论】:

    标签: ruby-on-rails ruby activerecord timezone mongoid


    【解决方案1】:

    无论config.time_zone 说什么,ActiveRecord 都会以 UTC 存储所有内容;我很难找到权威的参考资料,到目前为止我发现的最好的是ActiveRecord::Timestamp docs。 MongoDB should also be storing everything in UTC:

    日期

    BSON 日期是一个 64 位整数,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。官方 BSON 规范将 BSON 日期类型称为 UTC datetime

    因此,您的数据库中的任何内容都不应更改或需要更改。 config.time_zone 设置仅用于 Rails 方面,它与数据库中使用的时区无关,因此您不必担心。

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      相关资源
      最近更新 更多