Java获得给定日期范围内的每一天集合返回
给一个日期范围,然后获得日期范围的每一天( 学习记录)
public static void main(String[] args) throws ParseException {
List<String> dates = findEveryDay("2022-09-15", "2022-09-27");
System.out.println("时间==" + dates);
}
/**
* 传入两个时间范围,返回这两个时间范围内的所有日期,并保存在一个集合中
* @param beginTime
* @param endTime
* @return
* @throws ParseException
*/
public static List<String> findEveryDay(String beginTime, String endTime)
throws ParseException {
//1.创建一个放所有日期的集合
List<String> dates = new ArrayList();
//2.创建时间解析对象规定解析格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//3.将传入的时间解析成Date类型,相当于格式化
Date dBegin = sdf.parse(beginTime);
Date dEnd = sdf.parse(endTime);
//4.将格式化后的第一天添加进集合
dates.add(sdf.format(dBegin));
//5.使用本地的时区和区域获取日历
Calendar calBegin = Calendar.getInstance();
//6.传入起始时间将此日历设置为起始日历
calBegin.setTime(dBegin);
//8.判断结束日期是否在起始日历的日期之后
while (dEnd.after(calBegin.getTime())) {
// 9.根据日历的规则:月份中的每一天,为起始日历加一天
calBegin.add(Calendar.DAY_OF_MONTH, 1);
//10.得到的每一天就添加进集合
dates.add(sdf.format(calBegin.getTime()));
//11.如果当前的起始日历超过结束日期后,就结束循环
}
return dates;
}
原文连接:https://blog.csdn.net/Wh1teMars/article/details/125572892