1. schedule(TimerTask task, Date time):在指定Date日期,开始执行TimerTask里的run方法
2. schedule(TimerTask task, long delay):延迟一段时间后,开始执行TimerTask里的run方法
3. schedule(TimerTask task, long delay, long period):延迟一段时间后,开始执行TimerTask里的run方法,并每隔period秒后,重复执行run方法
1 和 2 实例:
package com.timer; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class Run1 { private static Timer timer = new Timer(); /* * TimerTask 的实现类,并重写run()方法 */ static public class MyTask extends TimerTask{ @Override public void run() { System.out.println("运行了!时间为:" + new Date()); } } public static void main(String[] args) { try{ MyTask task = new MyTask(); // timer.schedule(task, 5000); //延迟5秒后,开始执行task里的run()方法 timer.schedule(task, 5000, 2000); //延迟5秒后,开始执行task里的run()方法,并在后面每隔两秒重复执行run()方法 }catch(Exception e){ e.printStackTrace(); } } }
3 实例:
package com.timer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class Run1 { private static Timer timer = new Timer(); /* * TimerTask 的实现类,并重写run()方法 */ static public class MyTask extends TimerTask{ @Override public void run() { System.out.println("运行了!时间为:" + new Date()); } } public static void main(String[] args) { try{ MyTask task = new MyTask(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = "2017-10-17 9:45:00"; Date dateRef = sdf.parse(dateString); System.out.println("字符串时间:" + dateRef.toLocaleString() + " 当前时间:" + new Date().toLocaleString()); timer.schedule(task, dateRef); //在指定日期,开始执行run()方法,指定日期要比你现在的系统时间晚 }catch(Exception e){ e.printStackTrace(); } } }
运行效果
字符串时间:2017-10-17 9:45:00 当前时间:2017-10-17 9:44:33 运行了!时间为:Tue Oct 17 09:45:00 CST 2017