这里用到的是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<String> pastDay(String time){
ArrayList<String> 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;
}