Deserialización de LocalDateTime con el módulo Jackson JSR310
Estoy usando la biblioteca descritala página Jackson Datatype JSR310 pero sigo teniendo dificultades para que funcione.
He configurado el siguiente bean:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
return mapper;
}
Cuando llamo a mi API REST, la salida del formato de fecha esyyyy-MM-dd'T'HH:ss.SSSSSS
, p.ej.2015-04-11T00:10:38.905847
. Esto es manejado por mi código AngularJS muy bien.
Cuando quiero enviar algo a la API REST, la fecha se publica comoyyyy-MM-dd'T'HH:mm:ss.SSS'Z'
, p.ej.2015-04-09T08:30:00.000Z
Jackson sigue quejándose de la 'Z' al final. Si miro elLocalDateTimeDeserializer
en la documentación utiliza elDateTimeFormatter.ISO_LOCAL_DATE_TIME
que hierve aISO_LOCAL_DATE'T'ISO_LOCAL_TIME
y menciona que no tiene zona de anulación.
Así que pensé que debería configurar elDateFormat
sobre elObjectMapper
Estoy creando:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
return mapper;
}
Pero esto no hace nada. Lo cambié a algo simple comoyyyy-MM-dd
pero la fecha serializada se mantuvo en el formato anterior y la deserialización tampoco se ve afectada.
¿Qué estoy haciendo mal aquí para que esto funcione? El formato de fecha en mi código JavaScript es, que yo sepa, el formato ISO 8601 ...