2016-08-19 1 views
4

Я получаю исключение при разборе даты 20160327020727 с форматом yyyyMMddhhmmss. Обратите внимание, что для параметра мягкости установлено значение false.SimpleDateFormat с узором yyyyMMddhhmmss не удалось разобрать дату «20160327020727»

SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss"); 
    df.setLenient(false); 
    try { 
     Date dt = df.parse("20160327020727"); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

Он обрабатывает другие даты в том же формате и работает должным образом. Почему это происходит?

+2

Это отлично работает для меня, какое исключение вы получаете? –

+0

java.text.ParseException: Невозможная дата: «20160327020727» – n0ne

+0

должно ли это что-то сделать с вашим местным временем? – n0ne

ответ

7

CET Изменения в летнее время в последнее воскресенье марта, поэтому в этот день нет 2AM.

Вы идете от 1:59 до 3:00

2

Вы получаете сообщение об ошибке, потому что это время не существует в вашем часовом поясе по умолчанию.

Попробуйте установить часовой пояс для UTC делая df.setTimeZone(TimeZone.getTimeZone("UTC"));

В CET в последнее воскресенье марта она не меняется в летнее время -> Нет 2AM в этот день.

-1

изменить его на "yyyyMMdd HHmmss", так что вы можете разобрать его легко.