【问题标题】: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 的数据类型,只有 TimestampUTC Datetime 两者都存储为 64 位整数。 UTC datetime 是自纪元以来的毫秒数,导致时间部分在呈现时全为零。

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

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

    【讨论】:

    • 感谢您的回答。我会尝试将其转换为字符串并保存
    猜你喜欢
    • 2020-05-21
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多