我也想处理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"))