1、指定时间的加减
public static Date dateAdd(Date date,String interval,int number){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
if("y".equals(interval)){
cal.add(Calendar.YEAR, number);
}else if("M".equals(interval)){
cal.add(Calendar.MONTH, number);
}else if("d".equals(interval)){
cal.add(Calendar.DATE, number);
}else if("h".equals(interval)||"H".equals(interval)){
cal.add(Calendar.HOUR, number);
}else if("m".equals(interval)){
cal.add(Calendar.MINUTE, number);
}else if("s".equals(interval)){
cal.add(Calendar.SECOND, number);
}else {
return null;
}
return cal.getTime();
}
例子:获取当前时间前5天的日子
dateAdd(new Date(),"d",-5);
获取某一段时间的每一天、月、年
public static List<String> getDayBetweenDates(String begin, String end) throws ParseException {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date dBegin = sd.parse(begin);
Date dEnd = sd.parse(end);
List<String> lDate = new ArrayList<String>();
lDate.add(sd.format(dBegin));
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(dEnd);
while (dEnd.after(calBegin.getTime())) {
calBegin.add(Calendar.YEAR, 1);
lDate.add(sd.format(calBegin.getTime()));
}
return lDate;
}
public static void main(String[] args) throws ParseException {
List<String> dayBetweenDates = getDayBetweenDates("2015-04-10 00:00:00", "2020-04-13 00:00:00");
System.out.println(dayBetweenDates);
}