目錄
- 1.java定時器原生方法
1.java定時器原生方法
實現每天早上8點執行任務的示例代碼
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;public class TimeTest{public static void main(String[] args) {ScheduledExecutorService timer = new ScheduledThreadPoolExecutor(1);MyTask task1 = new MyTask();// 獲取當前時間Calendar now = Calendar.getInstance();// 設置每天早上8點執行Calendar scheduleTime = Calendar.getInstance();scheduleTime.set(Calendar.HOUR_OF_DAY, 8);scheduleTime.set(Calendar.MINUTE, 0);scheduleTime.set(Calendar.SECOND, 0);// 如果當前時間已經超過了今天的8點,則修改為明天的8點if (now.after(scheduleTime)) {scheduleTime.add(Calendar.DATE, 1);}// 計算初始延遲時間long initialDelay = scheduleTime.getTimeInMillis() - now.getTimeInMillis();timer.scheduleAtFixedRate(task1, initialDelay,24 * 60 * 60 * 1000, TimeUnit.SECONDS);}public static class MyTask implements Runnable {@Overridepublic void run() {//執行的業務邏輯System.out.println("執行的業務邏輯.......");}}
}