【发布时间】:2019-12-08 13:09:39
【问题描述】:
我正在使用 Spring Boot 2,并且我有一个具有 java.sql.Date 和 java.sql.Timestamp 属性的类。我需要将时间戳序列化为纳秒并将日期序列化为标准格式(yyyy-MM-dd)。
一开始的 JSON 结果如下:
"checkinTime": "2019-05-01T17:00:00.000+0000", // java.sql.Timestamp
"lastOrderDate":"2019-05-01" // java.sql.Date
然后我将这些行放在 application.properties 文件中
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS: true
spring.jackson.serialization.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS: false
之后的结果如下:
"checkinTime": -2209014000000,
"lastOrderDate": 1556643600000,
我想要的是这样的
"checkinTime": -2209014000000, // java.sql.Timestamp
"lastOrderDate":"2019-05-01" // java.sql.Date
如何在 Spring Boot 中实现这一点??
【问题讨论】:
-
您的
checkinTime写为 ISO-8601,而不是时间戳。 (1) 在您的 DTO(也可能是实体)中使用 Instant 并 (2) 关闭 off 时间戳。 -
我只希望我的 JSON 像我上面写的那样。你的评论我不清楚。
-
您提供的 JSON 中没有时间戳。您需要将
WRITE_DATES_AS_TIMESTAMPS设置为false。
标签: java spring spring-boot jackson-databind