【发布时间】:2018-05-01 05:12:56
【问题描述】:
我正在尝试从这些参数返回日期列表:
LocalDate startDate
LocalDate endDate
Boolean monday ... sunday : booleans
例如:
startDate = 01/03/2016
endDate = 10/03/2016 (included)
Monday = true;
Tuesday = false;
Wednesday = false;
Thursday = true;
Friday = true;
Saturday = false;
Sunday = false;
List of dates returned : [03/03/2016, 04/03/2016, 07/03/2016, 10/03/2016]
有没有我可以使用的库?我只设法返回了两个日期之间的日期,但我也不知道如何使用这些日期:(我使用的是 java 6)
public List<LocalDate> datesBetween(LocalDate start, LocalDate end) {
List<LocalDate> ret = new ArrayList<LocalDate>();
for (LocalDate date = start; !date.isAfter(end); date = date.plusDays(1)) {
ret.add(date);
}
return ret;
}
【问题讨论】:
-
Joda 时间非常有用。也许你应该尝试一下。它有很多有用的方法。 Joda link
-
@JernejK java.time 项目现在处于维护模式,其创建者建议迁移到 java.time 类。详情见底部my Answer。
-
@BasilBourque 当时他专门询问 Java 6。我曾多次看到 Joda 时间在较旧的 Java 版本上是多么有用。他们停止开发的唯一原因是 Java 8 中设置的新功能 - “请注意,从 Java SE 8 开始,用户被要求迁移到 java.time (JSR-310) - JDK 的核心部分,它取代了这个项目。 "
-
@JernejK 我的评论是给读者的注释,而不是批评。对于 Java 6 和 7,java.time 的大部分功能都在 ThreeTen-Backport 项目中进行了反向移植,并在 ThreeTenABP 项目。