JAVA 获取某段时间内的所有日期集合

获取指定日期

    public static void main(String[] args) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        Calendar cal3 = Calendar.getInstance();
        Calendar cal4 = Calendar.getInstance();

        //昨天
        cal1.add(Calendar.DATE,-1);
        Date time = cal1.getTime();
        System.out.println(sdf.format(time));
        //明天
        cal2.add(Calendar.DATE,1);
        Date time2 = cal2.getTime();
        System.out.println(sdf.format(time2));
        //当前日期往后推一个月
        cal3.add(Calendar.MONTH,1);
        Date time3 = cal3.getTime();
        System.out.println(sdf.format(time3));
        //当前日期往后推一年
        cal4.add(Calendar.YEAR,1);
        Date time4 = cal4.getTime();
        System.out.println(sdf.format(time4));
    }

获取某段时间内日期集合

   public static void main(String[] args) {

        String start = "2018-08-08";
        String end = "2018-09-08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date dStart = null;
        Date dEnd = null;
        try {
            dStart = sdf.parse(start);
            dEnd = sdf.parse(end);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        List<Date> dateList = findDates(dStart, dEnd);
        for (Date date : dateList) {
            System.out.println(sdf.format(date));
        }
    }

    //JAVA获取某段时间内的所有日期
    public static List<Date> findDates(Date dStart, Date dEnd) {
        Calendar cStart = Calendar.getInstance();
        cStart.setTime(dStart);

        List dateList = new ArrayList();
        //别忘了,把起始日期加上
        dateList.add(dStart);
        // 此日期是否在指定日期之后
        while (dEnd.after(cStart.getTime())) {
        // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
            cStart.add(Calendar.DAY_OF_MONTH, 1);
            dateList.add(cStart.getTime());
        }
    return dateList;
    }

猜你喜欢

转载自blog.csdn.net/Zheng_xiao_xin/article/details/81503031