是否可以在新的 java.time
API 中获取 两个日期之间的所有日期?
假设我有这部分代码:
@Test
public void testGenerateChartCalendarData() {
LocalDate startDate = LocalDate.now();
LocalDate endDate = startDate.plusMonths(1);
endDate = endDate.withDayOfMonth(endDate.lengthOfMonth());
}
现在我需要 startDate
和 endDate
之间的所有日期。
我正在考虑获取两个日期的 daysBetween
并迭代:
long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
for(int i = 0; i <= daysBetween; i++){
startDate.plusDays(i); //...do the stuff with the new date...
}
有没有更好的方法来获取日期?
原文由 Patrick 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设您主要想迭代日期范围,那么创建一个可迭代的
DateRange
类是有意义的。这将允许你写:就像是:
添加 equals 和 hashcode 方法,getter,可能有一个静态工厂+私有构造函数来匹配 Java 时间 API 等的编码风格是有意义的。