如何解决将几个日期分成较小的几个部分
我有2个约会:
public static Date getStartDate() {
Calendar instance = Calendar.getInstance();
instance.set(Calendar.YEAR,2020);
instance.set(Calendar.MONTH,7);
instance.set(Calendar.DAY_OF_MONTH,7);
instance.set(Calendar.HOUR_OF_DAY,9);
instance.set(Calendar.MINUTE,50);
return instance.getTime();
}
public static Date getEndDate() {
Calendar instance = Calendar.getInstance();
instance.set(Calendar.YEAR,11);
instance.set(Calendar.HOUR_OF_DAY,46);
return instance.getTime();
}
我的局限性在于,如果开始和结束时间超过一个小时,则该过程将失败,因此,如果我的时间范围与前一个时间范围相同,则需要将其分成不超过一个小时的较小块。 >
是否有一个api可以将给定的开始时间和结束时间划分为更小的周期列表?
谢谢。
解决方法
没有内置方法,但是您可以轻松地编写自己的代码。这将构造一个java.time.Instant
对象的列表,这些对象从开始日期开始到结束日期之前一小时相隔一小时:
Instant start = getStartDate().toInstant();
Instant endExclusive = getEndDate().toInstant();
ArrayList<Instant> chunks = new ArrayList<>();
Instant chunkStart = start;
while (chunkStart.isBefore(endExclusive)) {
chunks.add(chunkStart);
chunkStart = chunkStart.plus(1,ChronoUnit.HOURS);
}
请注意,这里的end
日期是专有的:它从未添加到chunks
列表中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。