Java: неразборчивая ошибка даты

У меня дата в следующем формате:

2017-04-09T11:15:39.200+03:00

Я использовал следующую строку формата:

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

Но я получаю исключение "

java.text.ParseException: Unparseable date: "2017-04-09T11:15:39.200+03:00"

Спасибо


person john paul    schedule 09.04.2018    source источник
comment
Почему вы поставили букву «Z» в конце вашего рисунка? Это означает, что ваша строка даты и времени должна заканчиваться символом Z, а это явно не так.   -  person Erwin Bolwidt    schedule 09.04.2018
comment
удалить 'z' это бесполезно   -  person Basil Battikhi    schedule 09.04.2018
comment
Я рекомендую вам избегать класса SimpleDateFormat. Это не только давно устарело, но и доставляет немало хлопот. Сегодня у нас намного лучше java.time, современный API даты и времени Java. Более того, современный класс OffsetDateTime будет анализировать вашу строку без какого-либо явного средства форматирования. Нет ничего проще.   -  person Ole V.V.    schedule 09.04.2018
comment
К вашему сведению, неприятные старые классы даты и времени, такие как java.util.Date , java.util.Calendar и java.text.SimpleDateFormat теперь являются устаревшими, замененными java.time классы, встроенные в Java 8 и новее. См. Руководство от Oracle.   -  person Basil Bourque    schedule 10.04.2018


Ответы (2)


Проблема в том, что вы не читали документацию: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Вы увидите, что используется шаблон X:

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");

И вы также не проверяли stackoverflow перед публикацией: в тех же тегах, которые вы использовали (https://stackoverflow.com/questions/tagged/simpledateformat), есть еще один вопрос - совсем недавний, заданный сегодня - по сути с той же проблемой (с использованием 'Z' внутри кавычек):

Gson: java.text.ParseException: неразборчивая дата: 2018-04 -09T09: 00: 00 + 02: 00

person well    schedule 09.04.2018

Документы API для того, что вы говорите, показывают, что это по существу для вашего желания вывода.

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"

https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

person SAMUEL MARCHANT    schedule 09.04.2018