Deserialisieren von LocalDateTime mit dem Jackson JSR310-Modul
Ich benutze die beschriebene Bibliothekdie Jackson Datentyp JSR310 Seite aber ich habe immer noch Schwierigkeiten, es zum Laufen zu bringen.
Ich habe die folgende Bean konfiguriert:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
return mapper;
}
Wenn ich meine REST-API aufrufe, ist die Ausgabe im Datumsformatyyyy-MM-dd'T'HH:ss.SSSSSS
, z.B.2015-04-11T00:10:38.905847
. Dies wird von meinem AngularJS-Code in Ordnung gehandhabt.
Wenn ich etwas an die REST-API senden möchte, wird das Datum als @ veröffentlichyyyy-MM-dd'T'HH:mm:ss.SSS'Z'
, z.B.2015-04-09T08:30:00.000Z
Jackson beschwert sich immer wieder über das 'Z' am Ende. Wenn ich mir das @ anseLocalDateTimeDeserializer
in der Dokumentation wird das @ verwendDateTimeFormatter.ISO_LOCAL_DATE_TIME
was auf @ siedISO_LOCAL_DATE'T'ISO_LOCAL_TIME
und es wird erwähnt, dass es keine Override-Zone gibt.
So dachte ich, ich sollte das @ setzDateFormat
auf derObjectMapper
Ich erstelle:
@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;
}
Aber das macht nichts. Ich habe es in etwas Einfaches wie @ geändeyyyy-MM-dd
aber das serialisierte Datum blieb im vorherigen Format und die Deserialisierung ist ebenfalls nicht betroffen.
Was mache ich hier falsch, damit das funktioniert? Das Datumsformat in meinem JavaScript-Code ist meines Wissens nach das ISO 8601-Format ...