2016-10-10 4 views
0

До Java8 мы использовали для установки DateFormat с ObjectMapper следующимИспользование DateTimeFormatter с ObjectMapper

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); 
ObjectMapper mapper = <SomeInstantiation> 
mapper.setDateFormat(df); 
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); 

Теперь, когда мы имеем java.time.format.DateTimeFormatter, которая является поточно и более надежным в отличие от SimpleDateFormat. Я хочу заменить вышеуказанные настройки на ObjectMapper.

Как установить DateTimeFormatter с ObjectMapper

+0

Из того, что я собрал, вы можете использовать «Конфигурация Переопределяет ", чтобы сделать что-то подобное. См. [2.8 patchnote] (https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.8#configuration-overrides) и [этот вопрос github] (https://github.com/FasterXML/jackson- Тип данных-Joda/вопросы/12). – Aaron

ответ

0

Вы можете попробовать следующее: требуется

DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; 

LocalDateTimeDeserializer dateTimeDeserializer = new LocalDateTimeDeserializer(formatter); 
LocalDateTimeSerializer dateTimeSerializer = new LocalDateTimeSerializer(formatter); 

JavaTimeModule javaTimeModule = new JavaTimeModule(); 
javaTimeModule.addDeserializer(LocalDateTime.class, dateTimeDeserializer); 
javaTimeModule.addSerializer(LocalDateTime.class, dateTimeSerializer); 

ObjectMapper mapper = new ObjectMapper(); 
mapper.registerModule(javaTimeModule); 

jackson-datatype-jsr310 зависимость:

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jsr310</artifactId> 
    <version>2.8.2</version> 
</dependency> 
Смежные вопросы