Страницы

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

суббота, 14 декабря 2019 г.

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

#java #дата


Не получается преобразовать 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"

    


Ответы

Ответ 1



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

Ответ 2



public static String dateToString(Date date, String f) { if (date != null) { return new SimpleDateFormat(f, Locale.ENGLISH).format(date); } return null; }

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

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