0

我将一些实体保存到 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 返回存储在日期中的时区?

提示赞赏,谢谢!

4

1 回答 1

1

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

话虽这么说,如果你想在你的应用程序代码中始终使用它作为 UTC,我认为有一种方法可以告诉 JODA 库执行此操作: Defaulting date time zone to UTC for Jodatime's DateTime

于 2013-07-27T00:00:03.900 回答