MongoDB Java驱动程序插入日期。

6
我正在使用MongoDB 2.2和java-driver 2.10.1。 我正在从java.util.Date实例向文档中插入一个日期字段。我的实例具有以下值:Wed Oct 10 00:00:00 CEST 2012,但是一旦进入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);

您可以查看我事件对象上引用的日期实例,如下调试截屏所示: enter image description here 这是否与时区有关?或者是驱动程序的错误?
1个回答

8

MongoDB中的日期始终存储为UTC日期时间,因此您看到的是正确的。

CEST时区比UTC(GMT)快两个小时,因此您的时间的正确UTC表示比CEST时间早两个小时,这正是您所看到的。


如何禁用DateTime的区域修改,有什么想法吗? - tero17
@tero17 请将此作为一个新问题发布。 - JohnnyHK
我遇到了同样的问题。我不想让MongoDB转换我的日期。如何禁用它?有什么好办法吗? - uma mahesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接