【发布时间】:2014-03-19 17:17:54
【问题描述】:
我有兴趣在我的 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")
}
]
请注意此处ISODate() 的-0400 片段。在另一台机器上,它看起来像以下(错误的方式):
> 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 来保留这些日期(Ruby gem),但我只想知道如何在我的日期中获取时区偏移量,因此它们的格式如下:
"asOf": ISODate("2014-03-19T12:01:22.355-0400")
不喜欢:
"asOf" : ISODate("2014-03-19T16:35:33.474Z")
【问题讨论】:
-
“错误”的 ISODate 有效。末尾的“Z”表示日期/时间是 UTC。有关更多信息,请参阅以下内容:en.wikipedia.org/wiki/ISO_8601#UTC
-
上面的评论是正确的。在数据库中使用 UTC 将其保留在本地时间是不好的做法。你的问题也得到了回答stackoverflow.com/questions/7797470/…