package com.my.timer; import java.util.Date; import java.util.TimerTask; public class myTask extends TimerTask { /** * 定时任务调用的方法,即处理业务的方法 */ @Override public void run() { System.out.println("定时任务执行了:" + new Date().toLocaleString()); } }
package com.my.timer; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class TestTimer { public static void main(String[] args) { TimerTask task = new myTask(); Timer timer = new Timer(); // 1.定制每天的1:00执行一次, Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 1); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date date = calendar.getTime(); // 如果第一次执行定时任务的时间 小于 当前的时间任务会立即执行 // 因此要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。 if (date.before(new Date())) { date = addDay(date, 1); } // timer.schedule(task, date); // 2.每天的date时刻执行task,每隔2秒重复执行 // timer.schedule(task, date, 2 * 1000); // 3.五秒后执行一次 // timer.schedule(task, 5 * 1000); // 4.五秒后执行一次,之后每隔1秒执行一次 timer.schedule(task, 5 * 1000, 1 * 1000); } // 增加或减少天数 public static Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); } }