2013-07-26 47 views
0

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

这是集合中:

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

我使用Spring的数据的MongoDB来访问数据库。

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

我结束了与此:

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

有没有办法告诉蒙戈做回存储在日期的时区?

提示表示感谢,谢谢!

+1

其实蒙戈返回它是什么的数据库,但是你的程序使用本地设置打印它。我认为这是问题。 – innoSPG

回答

1

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

话虽这么说,如果你想用它工作在应用程序代码UTC往常一样,我觉得有一种方法来告诉JODA库做到这一点:Defaulting date time zone to UTC for Jodatime's DateTime

+0

太好了,谢谢。为Joda设置默认时区。 –