java工具《获取两个日期之间的所有日期的开始时间集合》
【摘要】 java工具《获取两个日期之间的所有日期的开始时间集合》

@[toc]
一、介绍
功能说明
这是一个静态工具方法,用于获取两个日期之间的所有日期(不包含起始日期,包含结束日期?需要确认)。方法接收开始日期和结束日期两个参数,返回这两个日期之间的所有日期的 List 集合。
参数说明
- start:开始日期(不包含在结果中)
- end:结束日期(可能包含在结果中?)
实现原理
- 创建两个 Calendar 实例,分别设置为开始日期和结束日期
- 将开始日期的 Calendar 向前推进 1 天(tempStart.add(Calendar.DAY_OF_YEAR,1))
- 通过 while 循环,只要开始日期在结束日期之前,就将当前日期加入结果集
- 每次循环后将开始日期增加 1 天,继续比较
二、代码
/**
* 获取两个日期之间的所有日期的开始时间集合
* 返回Date的List
*/
public static List<Date> getBetweenDates(Date start, Date end){
List<Date> result = new ArrayList<>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
tempStart.add(Calendar.DAY_OF_YEAR,1);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
while (tempStart.before(tempEnd)){
result.add(tempStart.getTime());
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
return result;
}
结果展示
//获取两个日期之间的所有日期的开始时间集合
Date beginDate = new Date();
beginDate.setTime(1652976000000L); //2022-05-20 00:00:00
Date endDate = new Date();
endDate.setTime(1655654400000L); //2022-06-20 00:00:00
System.out.println(getBetweenDates(beginDate, endDate)); //[Sat May 21 00:00:00 CST 2022, Sun May 22 00:00:00 CST 2022, Mon May 23 00:00:00 CST 2022, Tue May 24 00:00:00 CST 2022, Wed May 25 00:00:00 CST 2022, Thu May 26 00:00:00 CST 2022, Fri May 27 00:00:00 CST 2022, Sat May 28 00:00:00 CST 2022, Sun May 29 00:00:00 CST 2022, Mon May 30 00:00:00 CST 2022, Tue May 31 00:00:00 CST 2022, Wed Jun 01 00:00:00 CST 2022, Thu Jun 02 00:00:00 CST 2022, Fri Jun 03 00:00:00 CST 2022, Sat Jun 04 00:00:00 CST 2022, Sun Jun 05 00:00:00 CST 2022, Mon Jun 06 00:00:00 CST 2022, Tue Jun 07 00:00:00 CST 2022, Wed Jun 08 00:00:00 CST 2022, Thu Jun 09 00:00:00 CST 2022, Fri Jun 10 00:00:00 CST 2022, Sat Jun 11 00:00:00 CST 2022, Sun Jun 12 00:00:00 CST 2022, Mon Jun 13 00:00:00 CST 2022, Tue Jun 14 00:00:00 CST 2022, Wed Jun 15 00:00:00 CST 2022, Thu Jun 16 00:00:00 CST 2022, Fri Jun 17 00:00:00 CST 2022, Sat Jun 18 00:00:00 CST 2022, Sun Jun 19 00:00:00 CST 2022]
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)