我的应用程序已在UTC时区运行超过6个月。这意味着所有ActiveRecord和MongoDB对象都已在UTC时区中创建。很奇怪,如果我继续并在application.rb中更改适用的设置:
config.time_zone = 'Eastern Time (US & Canada)'
这会将以UTC创建的记录转换为EST时区吗? MongoDB记录怎么样? (我使用Mongoid作为我的Ruby驱动程序)。它是否像在application.rb中翻转开关一样简单,就是这样吗?
答案 0 :(得分:3)
无论config.time_zone
说什么,ActiveRecord都会以UTC存储所有内容;我很难找到关于此的权威参考,到目前为止我发现的最好的是ActiveRecord::Timestamp
文档。 MongoDB should also be storing everything in UTC:
<强>日期强>
BSON Date是一个64位整数,表示自Unix纪元(1970年1月1日)以来的毫秒数。官方BSON规范将BSON日期类型称为UTC 日期时间。
因此,您的数据库中的任何内容都不应更改或需要更改。 config.time_zone
设置仅用于Rails方面,它与数据库中使用的时区无关,因此您不必担心任何问题。