java - 如何在没有时间的情况下将LocalDate保存到MongoDB(为什么即使我只保存日期,mongo也会随时间保存日期)?

标签 java mongodb spring-data-mongodb localdate

我正在尝试在 mongo 中保存 List< LocalDate > (只是没有时间的日期,采用 yyyy-MM-dd 格式), 在我的API完成dateList的计算后,我尝试将这些日期保存在MongoDB中。 保存后,我看到日期以 yyyy-MM-dd hh:mm:ss 格式保存,如下所示。

enter image description here

有人可以告诉我为什么会发生这种情况吗? 有没有办法将 LocalDate 保存为 yyyy-MM-dd 格式? 非常感谢。

我正在将 SpringJPA Mongo 与 springboot 和 Java 结合使用。

最佳答案

发生这种情况是因为 MongoDB 以 BSON 格式存储数据(请参阅 BSON spec )。

BSON 中没有 Date 的数据类型,只有 TimestampUTC Datetime 两者都存储为 64 位整数。 UTC 日期时间是自纪元以来的毫秒数,导致渲染时时间部分全为零。

如果您只想存储日期,则需要使用字符串类型。

如果问题在于数据的显示方式,您只需要一个不同的函数来将从 MongoDB 返回的时间戳转换为您想要使用的显示格式。

关于java - 如何在没有时间的情况下将LocalDate保存到MongoDB(为什么即使我只保存日期,mongo也会随时间保存日期)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60085664/

相关文章:

node.js - 带有自己的 ObjectId 的 Mongoose 自引用抛出 : cast to ObjectId failed

java - 如何更新 MongoDB 中的嵌套文档而不是使用 Spring Data Java

java - 如何使用 spring-data 在 mongodb 中创建全文搜索查询?

java - 与基于 xml 的配置相比,注释在重新编译、重新部署方面不是有显着的优势吗?

java - 为什么 TextView 无法显示从 Android 资源引用的格式化文本?

java - 将多个调试器连接到一个调试器(Java、JPDA)

java - 如何使用 Eclipse 在 pdf 中创建波斯语内容

javascript - 如何在 Node js的mongoose中查找坐标是否在多边形内

javascript - Mongoose 不创建索引

java - 如何使用注释向 Spring Batch 作业添加另一个步骤?