MongoDB,Java:将日期属性检索为UTC

时间:2013-07-26 21:15:47

标签: java mongodb spring-data-mongodb

我将一些实体保存到Mongo数据库,这些实体具有将UTC设置为时区的Joda DateTime属性。虽然保存工作正常,但我在集合中看到具有正确值的属性,一旦我通过Java检索实体,时区再次设置为UTC + 2。

这是在集合中:

"created" : ISODate("2013-07-26T20:36:57.890Z")

我正在使用Spring-Data-MongoDB来访问数据库。

Category category = mongoTemplate.findById(id, Category.class);

我最终得到了这个:

2013-07-26T23:05:56.439+02:00

有没有办法告诉Mongo确实返回日期中存储的时区?

提示赞赏,谢谢!

1 个答案:

答案 0 :(得分:1)

驱动程序返回数据库作为java.util.Date对象的内容。它对时间所代表的时区一无所知。它不会将时区存储在任何地方。 Mongo Shell始终将时间值显示为UTC。

话虽如此,如果你想在你的应用程序代码中使用它总是使用它,我认为有一种方法可以告诉JODA库这样做:Defaulting date time zone to UTC for Jodatime's DateTime