/** * 传入两个时间范围,返回这两个时间范围内的所有日期,并保存在一个集合中 * * @param beginTime * @param endTime * @return * @throws Exception */ public static List<String> findEveryDay(String beginTime, String endTime) throws Exception { //创建一个放所有日期的集合 List<String> dates = new ArrayList(); //创建时间解析对象规定解析格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //将传入的时间解析成Date类型,相当于格式化 Date dBegin = sdf.parse(beginTime); Date dEnd = sdf.parse(endTime); //将格式化后的第一天添加进集合 dates.add(sdf.format(dBegin)); //使用本地的时区和区域获取日历 Calendar calBegin = Calendar.getInstance(); //传入起始时间将此日历设置为起始日历 calBegin.setTime(dBegin); //判断结束日期前一天是否在起始日历的日期之后 while (dEnd.after(calBegin.getTime())) { //根据日历的规则:月份中的每一天,为起始日历加一天 calBegin.add(Calendar.DAY_OF_MONTH, 1); //得到的每一天就添加进集合 dates.add(sdf.format(calBegin.getTime())); //如果当前的起始日历超过结束日期后,就结束循环 } LOGGER.info("获取所属期间的所有的日期"+JSONArray.fromObject(dates)); return dates; }
传入两个时间范围,返回这两个时间范围内的所有日期,并保存在一个集合中
最新推荐文章于 2024-06-13 08:37:22 发布