【问题标题】:How to save LocalDate to MongoDB without time (why is mongo saving date with time even if i save just the date)?如何在没有时间的情况下将 LocalDate 保存到 MongoDB(即使我只保存日期,为什么 mongo 会随时间保存日期)?
【发布时间】:2020-05-21 22:48:14
【问题描述】:
我正在尝试将 List 保存在 mongo 中(只是 yyyy-MM-dd 格式的没有时间的日期),
在我的 API 完成 datesList 的计算后,我试图将这些日期保存在 MongoDB 中。
保存后,我看到日期以 yyyy-MM-dd hh:mm:ss 格式保存,如下所示。
有人可以告诉我为什么会这样吗?
有没有办法将 LocalDate 保存为 yyyy-MM-dd 格式?
非常感谢。
我将 SpringJPA Mongo 与 springboot 和 Java 一起使用。
【问题讨论】:
标签:
java
mongodb
spring-data-mongodb
localdate
【解决方案1】:
这是因为 MongoDB 以 BSON 格式存储数据(请参阅BSON spec)。
BSON 中没有 Date 的数据类型,只有 Timestamp 和 UTC Datetime 两者都存储为 64 位整数。 UTC datetime 是自纪元以来的毫秒数,导致时间部分在呈现时全为零。
如果您只想存储日期,则需要使用字符串类型。
如果问题在于数据的显示方式,您只需要一个不同的函数来将从 MongoDB 返回的时间戳转换为您想要使用的显示格式。