我正在使用带有 java-driver 2.10.1 的 MongoDB 2.2
我从 java.util.Date
实例将日期字段插入到文档中。我的实例具有以下值:
2012 年 10 月 10 日星期三 00:00:00 CEST
但是一旦进入 mongo,我就有了这个值:
ISODate("2012-10-09T22:00:00Z")
我的插入代码:
BasicDBObject doc = new BasicDBObject("key", event.getKey())
.append("title", event.getTitle())
.append("description", event.getDescription())
.append("date", event.getDate());
db.getCollection("events").insert(doc);
您可以在此调试屏幕截图中查看从我的事件对象引用的日期实例:
与时区有什么关系吗?还是驱动程序的错误?
最佳答案
MongoDB 中的日期始终存储为 UTC datetimes ,所以你看到的是正确的。
CEST 时区比 UTC (GMT) 早两个小时,因此您的时间正确 UTC 表示比您的 CEST 时间早两个小时,这正是您所看到的。
关于MongoDB java-driver插入日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583306/