当前时间距离下一个分钟值以0或者5结尾的时间点(单位:毫秒)小于1分钟时,返回下下个以0或5结尾的时间点
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(); } } }