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