該方法适用于,需要每天某個時刻定時(重複)執行某個任務的情況。代碼如下:
package com.yjl.timer;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TestTimer {
//要定時執行的任務(作為守護線程存在)
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("執行任務了!!!!");
}
};
private Date firstTime = null;
private long period = 2000;
public void runTask() {
Calendar calendar = Calendar.getInstance();
//calendar.set(Calendar.DAY_OF_YEAR, 2);//一年中的第幾天
calendar.set(Calendar.HOUR_OF_DAY, 14);//一天中的第幾個小時
calendar.set(Calendar.MINUTE, 17);//第幾分鐘
calendar.set(Calendar.SECOND, 0);//第幾秒
//第一次執行定時任務的時間(如果在這時間之後執行這個方法,依然會執行任務,即設定的是14點執行任務,14點之後的任何時間開始該任務都會執行指定任務)
Date date = calendar.getTime();
firstTime = date;
//建立一個新的定時器
Timer timer = new Timer();
//參數一:所要安排的任務。參數二:首次執行任務的時間。參數三:執行各後續任務之間的時間間隔,機關是毫秒。
timer.scheduleAtFixedRate(task, firstTime, period);
}
public static void main(String[] args) {
TestTimer testTimer = new TestTimer();
testTimer.runTask();
}
}