【问题标题】:Write a date as a timestamp in Spring Bootspring boot 将日期写入时间戳
【发布时间】:2023-03-05 15:09:01
【问题描述】:

我有一个 spring boot 应用程序,我在其中使用 fasterxml jackson 库进行 json 转换。但默认日期被序列化为时间戳,这就是我想要的。

        MyObj obj = new MyObj();
        Date dateUnderTest = new Date();
        obj.setLastUpdatedAt(dateUnderTest);
        String objStr = objectMapper.writeValueAsString(obj);
        JsonNode jsonNode = objectMapper.readTree(objStr);
        String readUpdatedAt = jsonNode.findValue("updated_at").asText();
        Assert.assertEquals(Long.parseLong(readUpdatedAt), dateUnderTest.getTime());

测试成功。但是,当我尝试将 obj 编写为我的 REST API 响应时,我看到日期格式为

"updated_at": "2021-04-19T23:33:06.065+0000",

我认为 Spring Boot 正在使用其他一些序列化库进行此转换。我想要的是一个长时间戳。如何更改该转换?

【问题讨论】:

    标签: json spring-boot date jackson


    【解决方案1】:

    找到了答案。 Spring 的杰克逊转换器有它自己的序列化器。要设置它,我们可以在 application.properties 或 application.yml 文件中添加此配置

        spring.jackson.serialization.write_dates_as_timestamps: true
    

    【讨论】:

    • 好!将问题标记为已关闭
    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多