我有兴趣在MongoDB
日期字段中获取时区偏移量。在一台机器上使用MongoDB 2.4.9
,我看到以下内容,这是我希望存储日期的方式:
NOVUSNYCLK67(mongod-2.4.9) test_salat> db.scala_date_test_1.find().toArray()
[
{
"_id": ObjectId("5329bf52e4b089adba4e75ec"),
"_typeHint": "com.novus.salat.test.model.Neville",
"ennui": true,
"asOf": ISODate("2014-03-19T12:01:22.355-0400")
}
]
请注意此处-0400
的{{1}}片段。在另一台机器上,它看起来像以下(错误的方式):
ISODate()
我使用> db.scala_date_test_1.find().toArray()
[
{
"_id" : ObjectId("5329c755c026b6d16dc5972b"),
"_typeHint" : "com.novus.salat.test.model.Neville",
"ennui" : true,
"asOf" : ISODate("2014-03-19T16:35:33.474Z")
}
]
来保留这些日期(Mongoid
gem),但我只是想知道如何在我的日期中获取时区偏移量,以便它们的格式如下:
Ruby
并不喜欢:
"asOf": ISODate("2014-03-19T12:01:22.355-0400")
答案 0 :(得分:0)
配置选项
Mongoid目前还支持以下配置选项 在
mongoid.yml
或以编程方式提供(默认为 括号)。...略...
use_activesupport_time_zone
(true):在Rails应用程序中将告诉Mongoid将应用程序中的所有时间转换为本地定义的 Active Support中的时区。use_utc
(false):指示Mongoid在所有情况下都将所有时间转换为UTC时间。
与您的mongoid.yml
一起玩,为您配置正确的选项。另请参阅此问题:How to save a timezone correctly with Ruby and MongoId?:
您可能还想在config / mongoid.yml
中设置以下内容defaults: &defaults use_utc: false use_activesupport_time_zone: true
这听起来违反直觉,但这是目前的做法 mongoid使用UTC作为默认时区。