2016-12-09 8 views
0

Я разрабатываю API Rest и использую библиотеку Джексона для обработки Json.Ошибка десериализации даты Джексона

В моем POJO я определил несколько полей java.util.Date, и я разбираю эти даты с помощью ObjectMapper.

Проблема в том, что все даты идут не так.

Вот пример данных JSON, полученные от клиента:

{ 
"Date1":"20161208 121500", 
"Date2":"20161205 131515", 
"Date3":"19830201 122718" 
} 

Вот фрагмент кода:

private final SimpleDateFormat df = new SimpleDateFormat("yyyyMMDD hhmmss"); 

ObjectMapper mapper = new ObjectMapper(); 
mapper.setTimeZone(TimeZone.getDefault()); 
mapper.setDateFormat(df); 
MetaData mData = null; 

try {  
    mData = mapper.readValue(metaData, MetaData.class); 
} 
catch(JsonProcessingException jpe) { 
    return Response.status(Status.BAD_REQUEST).build(); 
} 

При создании объекта Date, его выключенное на несколько месяцев. При печати даты в журнале, я получаю следующее:

Date1: 01/08/16 00:15:00 (Original date is 12/08/2016) 
Date2: 01/05/16 13:15:15 (Original date is 12/05/2016) 
Date3: 01/01/83 00:27:18 (Original date is 02/01/1981) 

Может кто-нибудь увидеть, что я делаю неправильно :(

Спасибо большое

ответ

0

Вы имеете неправильный шаблон DATETIME!. Схема должна быть YYYYMM дд ччммсс.

«D» на День в год и «D» на день в месяц.

+0

Спасибо большое! не могу поверить, что я скучаю что ... – user1229404

Смежные вопросы