Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Как выполнить правильное преобразование строки в дату?

#java #строки #дата #преобразование


Добрый день,читаю из файла строку следующего вида,пытаюсь преобразовать в тип Date.
Не получается. Подскажите, пожалуйста, в чем ошибка. 

String dat ="Sat Jan 03 19:47:23 MSK 1984";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        simpleDateFormat.applyPattern("EEE MMM dd HH:mm:ss zzz yyyy");
        Date birthDate = simpleDateFormat.parse(dat);


Выкидывает вот такую ошибку:

Exception in thread "main" java.text.ParseException: Unparseable date: "Sat Jan 03
19:47:23 MSK 1984" at java.text.DateFormat.parse(DateFormat.java:366)

    


Ответы

Ответ 1



Все дело в локали: String dat ="Sat Jan 03 19:47:23 MSK 1984"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); Date birthDate = simpleDateFormat.parse(dat);

Ответ 2



Попробуйте так: String str = "Sat Jan 03 19:47:23 MSK 1984"; DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); Date date = format.parse(str); Как правильно сказали StateItPrimitive и ЮрийСПб, парсинг даты происходит с учётом локали.

Ответ 3



Кроме вышеперечисленного еще можно добавить, что есть метод ParseExact, который анализирует строку согласно некоторого шаблона

Комментариев нет:

Отправить комментарий