import com.aliyun.openservices.shade.org.apache.commons.lang3.time.DateFormatUtils;
import com.aliyun.openservices.shade.org.apache.commons.lang3.time.DateUtils;
import org.junit.Assert;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author wangjie
*/
public class TimeUtils {
/**
* 当前时间距离下一个分钟值以0或者5结尾的时间点(单位:毫秒)小于1分钟时,返回下下个以0或5结尾的时间点
* 反之,返回下个以0或5结尾的时间点,预留一分钟的缓冲时间,避免边界问题造成的误报
* @return
*/
public static long getNextTimeEndWith0or5(Date baseTime) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(baseTime);
int minute = calendar.get(Calendar.MINUTE);
if (minute < 54) {
int add = minute % 10 < 4 ? 5 - minute % 10 : 10 - minute % 10;
calendar.add(Calendar.MINUTE,add);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime().getTime();
}
if (minute < 59) {
// 当前时间+1小时
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date endTime = DateUtils.addHours(calendar.getTime(), 1);
return endTime.getTime();
} else {
// 当前时间+1小时
calendar.set(Calendar.MINUTE, 5);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date endTime = DateUtils.addHours(calendar.getTime(), 1);
return endTime.getTime();
}
}
}