存储Java 8中LOCALDATE蒙戈DB

Mehraj马利克:

使用Spring的引导1.5.4.RELEASE和蒙戈驱动程序3.4.2

我想存储LocalDatemongo DB,但我现在面临一个奇怪的问题。

        LocalDate startDate = LocalDate.now();
        LocalDate endDate = LocalDate.of(2020,12,01);
        System.out.println("---- StartDate : ---"+startDate); 
        System.out.println("-----End Date : ----"+endDate);

        repository.save(new Person("Mehraj","Malik", startDate, endDate));

在控制台输出:

----开始日期:2017年8月26日---

-----结束日期:2020年12月1日----

但是MongoDB中它被存储不正确的日期。

以下是从MongoDB的JSON的:

“的startDate”:ISODate( “2017-08-25T18:30:00.000Z”),

“结束日期”:ISODate( “2020-11-30T18:30:00.000Z”)

另外,我注意到,存储的时间也是不正确的,根据印度的时间。

是否有人可以帮助我在这里。为什么日期是正确的控制台上,但不是在MongoDB中,如何解决这个问题。

也:

蒙戈Java客户端的日期对象返回作为实例java.util.Date

这个问题也可能会被,当你保存startDateendDate价值,其toString()方法可能会使用JVM的默认时区更新的价值。

这里文档指出,官方BSON规格指的是BSON Date类型为UTC日期时间。那可能是你的原因LocalDateTime属性被保存到数据库之前转换为UTC时区。

同时,为了避免这种混淆使用BSON类型建议timestamp更新日期字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章