首先有一个extends TimerTask的方法
import java.util.Date;
import java.util.TimerTask;
/**
* 类说明
*
* @author nmj
* @email bjahqj@163.com
* @date 2017年5月17日 新建
*/
public class extendsTimerTask extends TimerTask{
/***
* 执行的线程
*/
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(new Date()+"成功。");
}
}
写TimerManager类来定时执行上面的extendsTimerTask
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import com.sun.jmx.snmp.tasks.Task;
public class TimerManager {
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
//num为几点执行
public TimerManager(int num) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, num);// 早8点
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
Date date = calendar.getTime();// 第一次执行的时间
// 如果第一次设定日期,小于当前时间,就在此时加一天,如果不加,会自动执行。
// if (date.before(new Date())) {
// date = this.addDay(date, 1);
// }
Timer timer = new Timer();
// 执行继承extends TimerTask的类
extendsTimerTask ett = new extendsTimerTask();
// 相隔执行的时间
timer.schedule(ett, date, PERIOD_DAY);
}
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
public static void main(String[] args) {
//填写8即为8点自动执行
new TimerManager(8);
}
}