@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Джексон JSR-310 модуль не десериализовать простейший формат OffsetDateTime
Не помогает даже если отключить SerializationFeature.WRITE_DATES_AS_TIMESTAMPS
, DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
и включить SerializationFeature.WRITE_DATES_WITH_ZONE_ID
.
По-видимому, он действительно хочет формат INSTANT, например 2015-10-20T11: 00: 00Z, без часового пояса. Что для OffsetDateTime бесполезно, потому что все дело в том, чтобы использовать часовой пояс (или смещение).
Любые идеи?
Полное раскрытие информации: У меня есть issue открыт на их Github.