【发布时间】:2018-07-10 21:56:45
【问题描述】:
我想以 2018-01-31T17:20:30Z (或 "yyyy-MM-dd'T'HH:mm:ss'Z'" )格式以 60 秒为增量生成两个日期之间的日期 + 时间列表。
到目前为止,我已经能够使用 LocalDate 对象生成两个日期之间的所有日期:
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);
}
}
给定一个开始和结束日期,这将生成一个包含其间所有日期的Iterable。
但是,我想修改它,使其每次使用 LocalDateTime 对象以 60 秒的增量生成(即,不是每天生成一个值,而是生成 1440 个值,因为每小时 60 分钟乘以 24 小时每天假设开始和结束时间只有一天)
谢谢
【问题讨论】:
-
提示:将 ThreeTen-Extra 库添加到您的项目中,以使用
LocalDateRange类而不是自己创建类。
标签: java date java-stream iterable localdate