我正在使用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);
您可以在此调试屏幕截图中查看从我的事件对象引用的日期实例:
时区有什么关系吗?或驱动程序中的错误?
答案 0 :(得分:8)
MongoDB中的日期始终存储为UTC datetimes,因此您所看到的内容是正确的。
CEST时区比UTC(格林威治标准时间)早两个小时,所以你的时间正确的UTC表示比你的CEST时间早两个小时,这正是你所看到的。