java - MongoDb BSON 以 UTC 时间存储日期

如果我尝试将日期字段放入文档 (BSON) 并将其写入 Mongo,BSON 会以 UTC 格式写入。例如,日期

DateTime dateTime = new DateTime("2015-07-01");
Document doc = new Document("date", dateTime.toDate());

将被存储为

"date" : ISODate("2015-06-30T18:30:00Z")

在蒙古。而且,如果我使用相同的 Java 驱动程序检索它,我会得到它

Wed Jul 01 00:00:00 IST 2015

太好了。没有解决办法吗?我的意思是,为什么我不能按我的意愿存储我的日期?如果我需要从另一个时区查询数据库怎么办?我会得到不同的结果吗?日期字段是 Mongo 的重要组成部分,周围有丰富的运算符。不过,为什么 Mongo 不提供这种灵 active 呢? 谢谢

最佳答案

IMO,mongo 做的一切都是正确的。您使用本地时区实例化日期,然后以 UTC 将其存储在 mongo 中。然后,当您要求 mongo 为您检索它时,它会再次将日期转移到您本地的时区。

如果您不想处理时区转换,只需使用以下标志将您的本地时区设置为 UTC:

-Duser.timezone="UTC"

https://stackoverflow.com/questions/31654567/

相关文章:

mongodb - 如何在 Meteor 服务器端做 mongo 组

linux - 从 bash 脚本向 Mongo shell 传递命令,而不停止交互式 Mongo

mongodb - 聚合来自两个数组的 $sum 值

angularjs - angularjs可以直接连接mongodb吗?

mongodb - 如何在 MongoDB 中获取(或聚合)数组的不同键

python - 如何将 MongoDB 集合名称作为参数传递给 DB 连接函数-Python

mongodb - 引用错误 : require is not defined in MongoDB

mongodb - 查询以匹配包含点的多边形

node.js - MongoDB Aggregate 中的 Mongoose Virtuals

mongodb - 如何在 MongoDB 的单个集合中查找文档之间的集合交集?