#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, который анализирует строку согласно некоторого шаблона
Комментариев нет:
Отправить комментарий