【发布时间】:2015-10-20 10:29:20
【问题描述】:
@Test
public void testJacksonOffsetDateTimeDeserializer() throws IOException {
ObjectMapper mapper = new ObjectMapper().registerModule(new JavaTimeModule());
String json = "\"2015-10-20T11:00:00-8:30\"";
mapper.readValue(json, OffsetDateTime.class); // boom!
}
java.time.format.DateTimeParseException: Text '2015-10-20T11:00:00-8:30' could not be parsed at index 19
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
使用版本 2.6.3
即使我禁用 SerializationFeature.WRITE_DATES_AS_TIMESTAMPS、DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE 并启用 SerializationFeature.WRITE_DATES_WITH_ZONE_ID 也无济于事。
显然它真的想要像 2015-10-20T11:00:00Z 这样的 INSTANT 格式,没有时区。这对于 OffsetDateTime 有点没用,因为重点是使用时区(或偏移量)。
有什么想法吗?
完全披露:我在他们的 Github 上打开了一个 issue。
【问题讨论】:
标签: json datetime jackson java-8 deserialization