Продолжайте получать ParseException: неразборчивая дата

Я разрабатываю простое приложение для Android, и мне нужно преобразовать строку, содержащую дату и время в java, android. Вот пример формата моей строки:

Sun May 20 18:07:13 EEST 2018

И вот как я пытаюсь преобразовать его в настоящее время:

SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
Date date = formatter.parse("Sun May 20 18:07:13 EEST 2018");

Это сообщение об ошибке, которое я получаю. Где я делаю не так??

W/System.err: java.text.ParseException: Unparseable date: "Sun May 20 18:07:13 EEST 2018" (at offset 0)

person JollyRoger    schedule 20.05.2018    source источник
comment
Я не знаю. Отлично работает: ideone.com/ZFd7lG   -  person denvercoder9    schedule 20.05.2018
comment
@ rafid059 Ты меня огорчил, братан, не мог бы ты предложить мне какое-нибудь другое решение, пожалуйста?   -  person JollyRoger    schedule 20.05.2018
comment
В качестве отступления подумайте о том, чтобы выбросить давно устаревший и заведомо неприятный SimpleDateFormat и друзей и добавить ThreeTenABP на свой Android. проект, чтобы использовать java.time, современный API даты и времени Java. С ним намного приятнее работать.   -  person Ole V.V.    schedule 20.05.2018
comment
@ОлеВ.В. Попробую, спасибо боди.   -  person JollyRoger    schedule 20.05.2018
comment
Как Оле В.В. прокомментировано, проблемные классы даты и времени, такие как java.util.Date, java.util.Calendar и java.text.SimpleDateFormat, теперь являются устаревшими, вытесненными классами java.time. Большая часть функций java.time обратно перенесена на Java 6 и Java 7 в ThreeTen-Backport. Дальнейшая адаптация для более ранней версии Android в ThreeTenABP проект. См. Как использовать ThreeTenABP….   -  person Basil Bourque    schedule 20.05.2018
comment
Всегда ищите Stack Overflow перед публикацией. Вы можете предположить, что все основные вопросы о дате и времени уже были заданы и на них были даны ответы.   -  person Basil Bourque    schedule 20.05.2018


Ответы (1)


Попробуй это:

SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        Date date = null;
        try {
            date = formatter.parse("Sun May 20 18:07:13 EEST 2018");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date);
person Volodymyr T    schedule 20.05.2018
comment
Ставка Locale.English сработала как сказал rafid, тоже спасибо. - person JollyRoger; 20.05.2018
comment
К вашему сведению, неприятные старые классы даты и времени, такие как java.util.Date , java.util.Calendar и java.text.SimpleDateFormat теперь являются устаревшими, вытесненными java.time, встроенные в Java 8 и более поздние версии. См. учебник от Oracle. - person Basil Bourque; 20.05.2018