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 ...

Antworten auf die Frage(6)

Ihre Antwort auf die Frage