Я генерирую все даты между двумя датами.
public List<Date> generateRangeDates(Date firstDate, Date lastDate) {
List<Date> allDates = new ArrayList<Date>();
Calendar calendar = new GregorianCalendar();
calendar.setTime(firstDate);
while (calendar.getTime().before(lastDate)) {
Date resultado = calendar.getTime();
allDates .add(resultado);
calendar.add(Calendar.DATE, 1);
}
Date lastDate1 = allDates .get(dates.size()-1);
Calendar cal = new GregorianCalendar();
cal.setTime(lastDate1);
cal.add(Calendar.DATE, 1);
allDates .add(cal.getTime());
for(Date date1 : dates) {
System.out.println("All Dates : "+ date1);
}
return dates;
}
Вышеупомянутый метод генерирует все даты, начиная с первой даты до последней даты. Я знаю, что у него есть большой недостаток. например, я мог бы использовать joda-time вместо java.util.Calendar. есть также двусмысленность по поводу перехода на летнее время. также он не упомянул TIMEZONE. Также используется GregorianCalendar, который полностью игнорирует текущую локаль. - на данный момент - Я НЕ ХОЧУ ИСПОЛЬЗОВАТЬ JODA API.
Требуется помощь, чтобы обновить указанную выше функцию, которая работает во всех ЧАСОВЫХ ПОЯСАХ. Я много гуглил по этому поводу, но также сильно запутался.
также вопрос (может показаться немного глупым): почему люди настаивают на использовании JODA API? нет ли двусмысленности?
Примечание. Эти строки генерируют последнюю дату и добавляются в список allDates.
Date lastDate1 = allDates .get(dates.size()-1);
Calendar cal = new GregorianCalendar();
cal.setTime(lastDate1);
cal.add(Calendar.DATE, 1);
allDates .add(cal.getTime());