Десериализация LocalDateTime с помощью модуля Jackson JSR310
Я использую описанную библиотекустраница типа данных Джексона JSR310 но мне все еще трудно заставить его работать.
Я настроил следующий компонент:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
return mapper;
}
Когда я вызываю мой REST API, выводится формат датыyyyy-MM-dd'T'HH:ss.SSSSSS
например,2015-04-11T00:10:38.905847
, Это прекрасно обрабатывается моим кодом AngularJS.
Когда я хочу отправить что-то в REST API, дата публикуется какyyyy-MM-dd'T'HH:mm:ss.SSS'Z'
например,2015-04-09T08:30:00.000Z
Джексон продолжает жаловаться на «Z» в конце. Если я посмотрю наLocalDateTimeDeserializer
в документации он используетDateTimeFormatter.ISO_LOCAL_DATE_TIME
который кипит доISO_LOCAL_DATE'T'ISO_LOCAL_TIME
и упоминается, что у него нет зоны отмены.
Так что я решил установитьDateFormat
наObjectMapper
Я создаю:
@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;
}
Но это ничего не делает. Я изменил это на что-то простое, какyyyy-MM-dd
но сериализованная дата осталась в прежнем формате, и десериализация также не затронута.
Что я делаю не так, чтобы заставить это работать? Формат даты в моем коде JavaScript, насколько я знаю, формат ISO 8601 ...