我也想处理2月29日的leap年案件。

我尝试了以下操作,但是在将每种时间格式转换为dd-mm-yyyy时遇到了麻烦。

GregorianCalendar gcal = new GregorianCalendar();
SimpleDateFormat sdfd = new SimpleDateFormat("dd-MM-yyyy");

Date start = sdfd.parse("26-02-1989");
Date end = sdfd.parse("06-03-1989");

gcal.setTime(start);

while (gcal.getTime().before(end))
{
    gcal.add(Calendar.DAY_OF_YEAR, 1);
    System.out.println( gcal.getTime().toString());
    System.out.println(gcal.);
}


我也可以在Java中使用Javascript引擎。

最佳答案

java.util.Date是错误的类型。它具有毫秒(不是天)的精度。 java.time.LocalDate更合适。如果需要Java ThreeTen。

格式化LocalDate

localDate.format(DateTimeFormatter.ofPattern("dd-MM-yyyy"))

09-15 12:46