最近工作上遇到需要固定在整10分钟一个周期调度某个任务,所以需要这样一个功能,记录下
package org.example;import com.google.gson.Gson;
import org.apache.commons.lang3.time.DateUtils;import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;public class Main {/*** 计算当前时间最近的下一个整10分钟时间点* @param baseTime* @return*/public static long getNextMillisEndWithMinute0(Date baseTime) {Calendar calendar = Calendar.getInstance();calendar.setTime(baseTime);int minute = calendar.get(Calendar.MINUTE);if (minute < 50) {int add = 10 - minute%10;calendar.add(Calendar.MINUTE,add);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime().getTime();}// 当前时间+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();}public static void main(String[] args) throws Exception {System.out.println(new Date(getNextMillisEndWithMinute0(new Date())));}
}
运行结果
参考链接:java计算下一个整5分钟时间点 - 极客子羽 - 博客园 (cnblogs.com)