版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27786919/article/details/87721023
/** * 获取某个时间段内所有日期 * @param begin * @param end * @return */ public static List<String> getTimeByHour() { Integer[] hours=new Integer[25]; for (int i = 0; i < 25; i++) { Calendar calendar=Calendar.getInstance(); calendar.add(Calendar.HOUR_OF_DAY, i); hours[i]=calendar.get(Calendar.HOUR_OF_DAY); } List<String> list = new ArrayList<>(); for (int i = 1; i < hours.length; i++) { list.add(hours[i].toString()+":00"); } return list; }
/** * 获取某个时间段内所有日期 * @param begin * @param end * @return */ public static List<String> getDayBetweenDates(String begin, String end) { Date dBegin = parse(begin,DATE_PATTERN); Date dEnd = parse(end,DATE_PATTERN); List<String> lDate = new ArrayList<String>(); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); lDate.add(sd.format(dBegin)); Calendar calBegin = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calBegin.setTime(dBegin); Calendar calEnd = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calEnd.setTime(dEnd); // 测试此日期是否在指定日期之后 while (dEnd.after(calBegin.getTime())) { // 根据日历的规则,为给定的日历字段添加或减去指定的时间量 calBegin.add(Calendar.DAY_OF_MONTH, 1); lDate.add(sd.format(calBegin.getTime())); } return lDate; }
/** * 获取某个时间段内所有月份 * @param minDate * @param maxDate * @return * @throws ParseException */ public static List<String> getMonthBetweenDates(String minDate, String maxDate){ ArrayList<String> result = new ArrayList<String>(); Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(parse(minDate,"yyyy-MM")); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(parse(maxDate,"yyyy-MM")); max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; while (curr.before(max)) { result.add(format(curr.getTime(),"yyyy-MM")); curr.add(Calendar.MONTH, 1); } return result; }