如何在java中获取两个日期之间的日期列表java.time Package
我想要一个介于开始日期和结束日期之间的日期列表。
结果应该是所有日期的列表,包括开始日期和结束日期。
我想要一个介于开始日期和结束日期之间的日期列表。
结果应该是所有日期的列表,包括开始日期和结束日期。
早在2010年,我就建议使用Joda-Time。
请注意,Joda-Time 现在处于维护模式。从 1.8 (2014) 开始,您应该使用 .
java.time
一次添加一天,直到到达结束日期:
int days = Days.daysBetween(startDate, endDate).getDays();
List<LocalDate> dates = new ArrayList<LocalDate>(days); // Set initial capacity to `days`.
for (int i=0; i < days; i++) {
LocalDate d = startDate.withFieldAdded(DurationFieldType.days(), i);
dates.add(d);
}
实现自己的迭代器来做到这一点也不会太难,那会更好。
如果您使用的是Java 8,那么有一种更简洁的方法。Java 8 中新的 java.time 包融合了 Joda-Time API 的功能。
您可以使用以下代码解决您的要求:
String s = "2014-05-01";
String e = "2014-05-10";
LocalDate start = LocalDate.parse(s);
LocalDate end = LocalDate.parse(e);
List<LocalDate> totalDates = new ArrayList<>();
while (!start.isAfter(end)) {
totalDates.add(start);
start = start.plusDays(1);
}