1

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

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

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

4

1 回答 1

3

无论怎么config.time_zone说,ActiveRecord 都会以 UTC 存储所有内容;我很难找到关于此的权威参考,到目前为止我发现的最好的是ActiveRecord::Timestamp文档。MongoDB 还应该将所有内容存储在 UTC 中

日期

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

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

于 2012-12-26T19:26:24.383 回答