java根据开始日期结束日期字符串生成中间日期集合
时间: 2023-08-10 10:04:15 浏览: 103
您可以使用Java中的SimpleDateFormat类将字符串转换为日期,并使用LocalDate类和Stream API来生成中间日期集合。以下是一个示例代码:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class DateGenerator {
public static List<LocalDate> generate(String startDateString, String endDateString) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = formatter.parse(startDateString);
Date endDate = formatter.parse(endDateString);
LocalDate startLocalDate = new java.sql.Date(startDate.getTime()).toLocalDate();
LocalDate endLocalDate = new java.sql.Date(endDate.getTime()).toLocalDate();
long numOfDaysBetween = ChronoUnit.DAYS.between(startLocalDate, endLocalDate);
Stream<LocalDate> dateStream = Stream.iterate(startLocalDate, date -> date.plusDays(1))
.limit(numOfDaysBetween + 1);
return dateStream.collect(Collectors.toList());
}
}
```
在这个示例中,我们首先使用SimpleDateFormat类将开始日期和结束日期字符串转换为Date对象。然后,我们将Date对象转换为LocalDate对象,并使用ChronoUnit类计算开始日期和结束日期之间的天数。最后,我们使用Stream.iterate()方法生成从开始日期到结束日期的每个日期,并使用Stream.collect()方法将日期流转换为List。您可以使用此方法来生成中间日期集合并进行其他操作。
阅读全文