获取指定日期
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;
}