int monthFormatInJava = Integer.parseInt(masDate[1]); // (*) not do minus 1 for December
String lineForDateParsing = String.format("%s %s %s", masDate[0], String.valueOf(monthFormatInJava), masDate[2]);
SimpleDateFormat format = new SimpleDateFormat("dd MM yyyy");
Изначально у меня было в первой строчке (*) минус 1, т.к. я читал, что нумерация месяцев идёт с 0 до 11. Решение не проходило пока просто не убрал " - 1". Поясните, пожалуйста: как парсер в стринговом формате понимает что 12 - это декабрь? А если бы я написал, например, в месяц число 27?
Вадим Волков
35 уровень
По поводу месяца
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
15 июля 2020, 14:09
Это в классе Date нумерация месяцев с 0. Здесь же с помощью SimpleDateFormat стандартное (человеческое) строковое представление даты преобразуется в Date.
Если на входе будут невалидные данные (типа месяца 27), будет Exception
+1
Вадим Волков Java/Kotlin Developer
15 июля 2020, 14:40
Thank you!
0