gpt4 book ai didi

java - 如何在 Java 中没有 NumberLong 或 Date Wrapper 的情况下从 Mongodb 接收日期

转载 作者:行者123 更新时间:2023-12-02 09:38:53 24 4
gpt4 key购买 nike

目前,我正在开发一个Java/Spring App我在哪里保存并提供 JSON与客户之间。

我已将日期信息存储为以毫秒为单位的 Unix 时间戳。现在 MongoDB 自动将其存储为

"StartTime": {"$numberLong": "1549640550000"}

当我插入时

"StartTime": 1549640550000

我还了解到 $Date 会发生这种情况当我使用 iso8601 时,而不是 $numberLong格式。

如果我的查询结果中没有此包装信息,是否可以从 MongoDB 读取时间信息?

处理/删除接收简单时间戳信息的信息对我来说似乎很不舒服。

编辑:当我使用 document.toJSON (我知道它已被弃用)时,我得到

"StartTime": {"$numberLong": "1549640550000"}

当我使用 document.toString() 时我得到 TimeStamp=文档{StartTime=1549554150000}

最佳答案

您需要构建一个可以将 NumberLong 转换为 Long 的 JSON 序列化器。您可以使用以下设置并传入 Document.toJson() 作为参数并获得预期的输出。

JsonWriterSettings settings = JsonWriterSettings.builder()
.int64Converter((value, writer) -> writer.writeNumber(value.toString())).build();

document.toJson(settings); // The output would contain simple long value

关于java - 如何在 Java 中没有 NumberLong 或 Date Wrapper 的情况下从 Mongodb 接收日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com