Мне нужно десериализовать время формата 2016-11-28T10:34:25.097Z, используя Джексона, в ZonedDateTime Java8.
Я считаю, что правильно настроил 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;
когда я пытаюсь разобрать это Джексоном, я получаю
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 проблема остается.
Как я мог преодолеть это?