以下是获取向前,向后 或者当前时间的整点时间
/**
* 获取当前时间小时整点时间
*
* @param
* @return
*/
public static Date getCurrentHourTime() {
return getHourTime(new Date(), 0, "=");
}
/**
* 获取指定时间上n个小时整点时间
*
* @param date
* @return
*/
public static Date getLastHourTime(Date date, int n) {
return getHourTime(date, n, "-");
}
/**
* 获取指定时间下n个小时整点时间
*
* @param date
* @return
*/
public static Date getNextHourTime(Date date, int n) {
return getHourTime(date, n, "+");
}
/**
* 获取指定时间n个小时整点时间
*
* @param date
* @return
*/
public static Date getHourTime(Date date, int n, String direction) {
Calendar ca = Calendar.getInstance();
ca.setTime(date);
ca.set(Calendar.MINUTE, 0);
ca.set(Calendar.SECOND, 0);
switch (direction) {
case "+":
ca.set(Calendar.HOUR_OF_DAY, ca.get(Calendar.HOUR_OF_DAY) + n);
break;
case "-":
ca.set(Calendar.HOUR_OF_DAY, ca.get(Calendar.HOUR_OF_DAY) - n);
break;
case "=":
ca.set(Calendar.HOUR_OF_DAY, ca.get(Calendar.HOUR_OF_DAY));
break;
default:
ca.set(Calendar.HOUR_OF_DAY, ca.get(Calendar.HOUR_OF_DAY));
}
date = ca.getTime();
return date;
}