Форматирование даты java
Помогите разобраться. У меня есть два поля String dateFrom="01.04.2019"; и dateTo= "30.04.2019"; Мне нужно получить даты в данном диапазоне. При этом в таком же формате. Но у меня выводятся даты в формате 2019-04-01 и так далее.Как это правильно сделать.Не судите строго опыта у меня очень мало.`Ниже мой код.
String dateFrom = "01.04.2019";
String dateTo = "30.04.2019";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate startDate = LocalDate.parse(dateFrom, formatter);
LocalDate endDate = LocalDate.parse(dateTo, formatter);
System.out.println(startDate);
System.out.println(endDate);
Period period = Period.between(startDate, endDate);
int a = period.getDays();
System.out.println(period);
for (int i = 0; i <= a; i++) {
LocalDate[] listDays = {startDate.plusDays(i)};
for (LocalDate d : listDays) {
System.out.println(d);
}
}
}
Ответы (1 шт):
Автор решения: Roman-Stop RU aggression in UA
→ Ссылка
Вы забыли собственно вызвать функцию форматирования в этом месте:
System.out.println(d)
В этом случае println использует toString объекта для конвертирования его в строку, а реализация метода toString в классе LocalDate использует формат как описано в документации:
The output will be in the ISO-8601 format uuuu-MM-dd
Нужно так:
System.out.println(d.format(formatter))
Тогда будет использован формат из formatter:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");