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

举报
刘大猫 发表于 2026/03/14 21:10:50 2026/03/14
【摘要】 java工具《获取两个日期之间的所有日期的开始时间集合》

image.png

@[toc]

一、介绍

功能说明

这是一个静态工具方法,用于获取两个日期之间的所有日期(不包含起始日期,包含结束日期?需要确认)。方法接收开始日期和结束日期两个参数,返回这两个日期之间的所有日期的 List 集合。

参数说明

  • start:开始日期(不包含在结果中)
  • end:结束日期(可能包含在结果中?)

实现原理

  1. 创建两个 Calendar 实例,分别设置为开始日期和结束日期
  2. 将开始日期的 Calendar 向前推进 1 天(tempStart.add(Calendar.DAY_OF_YEAR,1))
  3. 通过 while 循环,只要开始日期在结束日期之前,就将当前日期加入结果集
  4. 每次循环后将开始日期增加 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。