J'ai besoin de désérialiser l'heure au format 2016-11-28T10:34:25.097Z en utilisant Jackson pour obtenir ZonedDateTime de Java8.
Je pense avoir correctement configuré ObjectMapper (une méthode factory) :
@Bean
ObjectMapper getObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
// some other config...
objectMapper.registerModule(new JavaTimeModule());
return objectMapper;
}
Et j'ai dans mon code pour le DTO un champ
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
private ZonedDateTime updatedAt;
lorsque j'essaie de le parser avec Jackson, j'obtiens
java.lang.IllegalArgumentException: Impossible de désérialiser la valeur de type java.time.ZonedDateTime
à partir de la chaîne "2016-11-28T10:34:25.097Z" : Le texte '2016-11-28T10:34:25.097Z' n'a pas pu être analysé,
texte non analysé trouvé à l'index 23 à [Source: N/A; line: -1, column: -1]
Sans @JsonFormat le problème persiste.
Comment pourrais-je surmonter cela?