几个月前,我发现了这个关于在Java中进行几天迭代的线程
Java 8 LocalDate - How do I get all dates between two dates?
并开始使用DateRange类:
public class DateRange implements Iterable<LocalDate> {
private final LocalDate startDate;
private final LocalDate endDate;
public DateRange(LocalDate startDate, LocalDate endDate) {
//check that range is valid (null, start < end)
this.startDate = startDate;
this.endDate = endDate;
}
@Override
public Iterator<LocalDate> iterator() {
return stream().iterator();
}
public Stream<LocalDate> stream() {
return Stream.iterate(startDate, d -> d.plusDays(1))
.limit(ChronoUnit.DAYS.between(startDate, endDate) + 1);
}
public List<LocalDate> toList() { //could also be built from the stream() method
List<LocalDate> dates = new ArrayList<>();
for (LocalDate d = startDate; !d.isAfter(endDate); d = d.plusDays(1)) {
dates.add(d);
}
return dates;
}
}
无论哪种方式,今天在调试时我发现这根本不起作用,我想知道一个星期的迭代花费了这么长时间。只是发现它以随机顺序多次重复同一天。
问题可能是我不了解如何使用此功能...
for (LocalDate date : new DateRange(thymeDate.getDate_a(), thymeDate.getDate_b())) {
List<Group_C> owners = getAllByDate(date);
groupList = composeGroup.composeGroupForRange(groupList, owners);
}
return GroupList;
}
我也在示例中尝试过DateRange.between()
,它不是函数,所以不能使用?
并创建新的普通实例。
DateRange range = new DateRange(dateA, dateB)
和@Autowire
设置DateRange类。
在给定的几天内如何迭代?
答案 0 :(得分:0)
这最终是双POST
的问题,这是由于使用代理引起的。 DateRange方法一直很好...
您可以在另一个线程中看到双重POST
问题的解决方案
Here
感谢Ole V.V.试图帮助:)