gpt4 book ai didi

java - 在jackson中以ISO8601格式反序列化 "Zulu"时间

转载 作者:搜寻专家 更新时间:2023-11-01 02:38:18 24 4
gpt4 key购买 nike

我需要使用 Jackson 将格式 2016-11-28T10:34:25.097Z 的时间反序列化为 Java8 的 ZonedDateTime。

我相信我正确配置了 ObjectMapper(一种工厂方法):

 @Bean
ObjectMapper getObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
// some other config...
objectMapper.registerModule(new JavaTimeModule());
return objectMapper;
}

我的 DTO 代码中有一个字段

  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
private ZonedDateTime updatedAt;

当我尝试解析 Jackson 的这个时,我得到了

 java.lang.IllegalArgumentException: Can not deserialize value of type java.time.ZonedDateTime 
from String "2016-11-28T10:34:25.097Z": Text '2016-11-28T10:34:25.097Z' could not be parsed,
unparsed text found at index 23 at [Source: N/A; line: -1, column: -1]

没有 @JsonFormat 问题仍然存在。

我怎样才能克服这个问题?

最佳答案

问题可能出在模式中的“Z”上。它不允许在日期时间值中使用文字“Z”。请尝试使用“X”。

  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX")

关于java - 在jackson中以ISO8601格式反序列化 "Zulu"时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845843/

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