6

我正在使用带有 java-driver 2.10.1 的 MongoDB 2.2

我正在将一个日期字段从一个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);

您可以在此调试屏幕截图中查看从我的事件对象引用的日期实例: 在此处输入图像描述

与时区有什么关系吗?还是驱动程序的错误?

4

1 回答 1

8

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

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

于 2013-01-29T13:59:19.300 回答