如何在java中迭代开始日期以结束日期

时间:2017-02-20 09:58:57

标签: java

您好我需要在Java的日期之间找到StartDate =" 2017-01-28"和EndDate =" 2017-02-03"我希望OutPut是

2017年1月28日 2017年1月29日 2017年1月30日 2017年1月31日 2017年2月1日 2017年2月2日 2017年2月3日 请帮帮我谢谢..

3 个答案:

答案 0 :(得分:4)

您可以使用Java日历来实现此目的:

Date start = new Date();
Date end = new Date();

Calendar cStart = Calendar.getInstance(); cStart.setTime(start);
Calendar cEnd = Calendar.getInstance(); cEnd.setTime(end);

while (cStart.before(cEnd)) {

    //add one day to date
    cStart.add(Calendar.DAY_OF_MONTH, 1);

    //do something...
}

答案 1 :(得分:2)

使用包java.time在Java 8中回答。

StringBuilder builder = new StringBuilder();
LocalDate startDate = LocalDate.parse("2017-01-28");
LocalDate endDate = LocalDate.parse("2017-02-03");
LocalDate d = startDate;

while (d.isBefore(endDate) || d.equals(endDate)) {
  builder.append(d.format(DateTimeFormatter.ISO_DATE)).append(" ");
  d = d.plusDays(1);
}

// "2017-01-28 2017-01-29 2017-01-30 2017-01-31 2017-02-01 2017-02-02 2017-02-03"
String result = builder.toString().trim();

答案 2 :(得分:1)

嗯,你可以这样做(使用Joda Time

for (LocalDate date = startDate; date.isBefore(endDate); date =    date.plusDays(1))
{
   ...
}

我完全建议在内置的日期/日历类中使用Joda Time。