JAVA & Android 获取当前日期前后的日期(前后不限天数)

直接复制粘贴就可以用,你也可以根据自己的需求自行定制,亲测正常运行!!!

    /**
     * 获取当前日期前后N天的日期 支持 yyyy-MM-dd ,yyyy/MM/dd
     *  MM/dd , yyyy/MM/dd HH:mm:ss ,  yyyy-MM-dd HH:mm:ss
     *  ps:还有很多日期格式你可根据自己需求自行测试,绝对完美支持。
     *  
     * 参数 day :你需要前后几天的日期就传入几,比如5天,就传5
     * 
     * ps:因为我的项目需要首先添加了一次当前日期,所以会比传入的日期
     * 多一天,比如需要5天,就会是6天,你可根据自己项目的需要自行更改。
     * 
     * ps:因为我需要当前日期前几天的日期,所以如果你需要后几天的日期
     * 请更改-1为+1即可。
     * 
     * 下面注释,写的很详细,我就不再废话了,亲测可用。
     * */
     private ArrayList<String> getDateList(int day) {
        //创建集合储存日期
        ArrayList<String> dateList = new ArrayList<>();
        //获取当前日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        String format = sdf.format(new Date().getTime());
        //此处是我项目的需求,需要保存当前日期在第一位,你也可以根据自己的需求自行决定
        dateList.add(format);
        for (int i = 0; i < day;i++){
            // 将当前的日期转为Date类型,ParsePosition(0)表示从第一个字符开始解析
            Date date = sdf.parse(format, new ParsePosition(0));
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            // add方法的第二个参数n中,正数表示该日期后n天,负数表示该日期的前n天,你可根据自己的需求自行决定,
            //如果项目中需要多次调用,你也可把这个参数,通过方法动态传入
            calendar.add(Calendar.DATE, -1);
            Date date1 = calendar.getTime();
            format = sdf.format(date1);
            dateList.add(format);
        }
        return dateList;
     }


猜你喜欢

转载自blog.csdn.net/ttandroid/article/details/77971602