Страницы

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

понедельник, 22 октября 2018 г.

Преобразование String в Date

Не получается преобразовать String в Date
Руководствуясь этой статьей у меня получилось преобразовать дату, где дни/месяцы/годы передаются в цифрах, но когда, например, название месяца я ввожу в буквах, то выходит ошибка
Работает:
SimpleDateFormat formatter = new SimpleDateFormat("dd MM yyyy");//задаю формат даты String dateInString = "29 11 2015";//создаю строку по заданному формату Date date = formatter.parse(dateInString);//создаю дату через System.out.println(formatter.format(date));
Не работает:
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); String dateInString = "28-Nov-2015"; Date date = formatter.parse(dateInString); System.out.println(formatter.format(date));
Выдает:
Exception in thread "main" java.text.ParseException: Unparseable date: "28-Nov-2015"


Ответ

Java пытается использовать региональные настройки, взятые из системы. А там, скорее всего, используется русский язык. Чтобы парсер понимал английские названия месяцев, его нужно создавать немного иначе:
new SimpleDateFormat("dd-MMM-yyyy", Locale.US);
Или же писать названия месяцев по-русски:
String dateInString = "28-Ноя-2015";

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

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