我想将 ZonedDateTime
序列化为 iso 8601 兼容的字符串,例如:
2018-02-14T01:01:02.074+0100
。
我尝试了以下内容:
@JsonProperty("@timestamp")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
private ZonedDateTime timestamp;
,但不幸的是,它没有给出正确的结果,并用其所有字段等序列化ZonedDateTime
等。
谢谢您的帮助!
确保您包括并注册Jackson模块,以在Java 8中引入的日期和时间类别。例如,
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.10</version>
</dependency>
,如有必要:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
旁注:您也可以在没有注释的情况下达到所需的格式,而只是配置ObjectMapper
即可以时间戳序列化日期。例如
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);