java根据指定的日期获取前七天

这里用到的是java的一个日历类:Calender

实现思路:
先初始化calendar,Calendar calendar = Calendar.getInstance();
然后调用setTime方法,将指定的时间设置为calendar的值。

calendar.setTime(date);

这里的past就是要获取的前past天的时间。如果要获取未来第几天的时间,这里可以把“-”改为“+”。

calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - past);

具体方法代码:

/**
     * 获取过去第几天的日期
     *
     * @param past
     * @return
     */
    public static String getPastDate(int past,Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - past);
        Date today = calendar.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String result = sdf.format(today);
        return result;
    }

这里获取的前第几天。而我要获取的值,前七天的所有时间。这里可以用的for循环来实现。

/**
     * 获取过去7天内的日期数组
     * @return  日期数组
     */
    public static ArrayList pastDay(String time){
        ArrayList pastDaysList = new ArrayList<>();
        try {
        	//我这里传来的时间是个string类型的,所以要先转为date类型的。
            SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
            Date date = sdf.parse(time);
            for (int i = 6; i >= 0; i--) {
                pastDaysList.add(getPastDate(i,date));
            }
        }catch (ParseException e){
            e.printStackTrace();
        }
        return pastDaysList;
    }

你可能感兴趣的:(java基础,calendar)