范例1:定时任务格式timer.schedule(TimerTask task, Date time)
package com.contoso;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* timer.schedule(TimerTask task, Date time);
* timer.schedule(TimerTask task,long delay);
* timer.schedule(TimerTask task, Date firsttime,long period);
* timer.schedule(TimerTask task, long delay,long period);
* timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period);
* timer.scheduleAtFixedRate(TimerTask task, long delay,long period);
*
*/
public class TimerJob1 {
private static Timer timer = new Timer();
public static class MyTask extends TimerTask {
public void run() {
System.out.println(Thread.currentThread().getName() + " TimerJob1定时任务已经执行完毕,它只执行这一次!");
}
}
public static void main(String[] args) {
String date = "2019-10-19 22:20:00"; // 设置定时任务的执行时间
MyTask myTask = new MyTask();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date time = formatter.parse(date);
System.out.println("当前系统时间:" + formatter.format(new Date()));
System.out.println("计划任务的执行时间:" + date);
timer.schedule(myTask, time); // 当前系统时间大于等于设定的time时,定时任务只执行一次
} catch (ParseException e) {
e.printStackTrace();
}
}
}
run:
当前系统时间:2019-10-19 22:44:21
计划任务的执行时间:2019-10-19 22:20:00
Timer-0 TimerJob1定时任务已经执行完毕,它只执行这一次!
范例2:定时任务格式timer.schedule(TimerTask task,long delay)
package com.contoso;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* timer.schedule(TimerTask task, Date time);
* timer.schedule(TimerTask task,long delay);
* timer.schedule(TimerTask task, Date firsttime,long period);
* timer.schedule(TimerTask task, long delay,long period);
* timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period);
* timer.scheduleAtFixedRate(TimerTask task, long delay,long period);
*
*/
public class TimerJob2 {
private static Timer timer = new Timer();
public static class MyTask extends TimerTask {
public void run() {
System.out.println(Thread.currentThread().getName() + " TimerJob2定时任务已经执行完毕,它只执行这一次!");
}
}
public static void main(String[] args) {
long delay = 5000; // 设置定时任务在应用程序启动5秒后执行
MyTask myTask = new MyTask();
try {
System.out.println("定时任务在5秒后执行");
timer.schedule(myTask, delay);
} catch (Exception e) {
e.printStackTrace();
}
}
}
run:
定时任务在5秒后执行
Timer-0 TimerJob2定时任务已经执行完毕,它只执行这一次!
范例3:定时任务格式timer.schedule(TimerTask task, Date firsttime,long period)
package com.contoso;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* timer.schedule(TimerTask task, Date time);
* timer.schedule(TimerTask task,long delay);
* timer.schedule(TimerTask task, Date firsttime,long period);
* timer.schedule(TimerTask task, long delay,long period);
* timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period);
* timer.scheduleAtFixedRate(TimerTask task, long delay,long period);
*
*/
public class TimerJob3 {
private static Timer timer = new Timer();
public static class MyTask extends TimerTask {
public void run() {
System.out.println(Thread.currentThread().getName() + " TimerJob3定时任务已经执行完毕,间隔5秒再执行一次!");
}
}
public static void main(String[] args) {
long period = 5000; // 设置定时任务执行的间隔时间为5秒
String date = "2019-10-19 22:27:00"; // 设置定时任务的执行时间
MyTask myTask = new MyTask();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date firsttime = formatter.parse(date);
System.out.println("当前系统时间:" + formatter.format(new Date()));
System.out.println("计划任务的执行时间:" + date);
timer.schedule(myTask, firsttime, period);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
run:
当前系统时间:2019-10-19 22:54:22
计划任务的执行时间:2019-10-19 22:27:00
Timer-0 TimerJob3定时任务已经执行完毕,间隔5秒再执行一次!
Timer-0 TimerJob3定时任务已经执行完毕,间隔5秒再执行一次!
Timer-0 TimerJob3定时任务已经执行完毕,间隔5秒再执行一次!
Timer-0 TimerJob3定时任务已经执行完毕,间隔5秒再执行一次!
范例4:定时任务格式timer.schedule(TimerTask task, long delay,long period)
package com.contoso;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* timer.schedule(TimerTask task, Date time);
* timer.schedule(TimerTask task,long delay);
* timer.schedule(TimerTask task, Date firsttime,long period);
* timer.schedule(TimerTask task, long delay,long period);
* timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period);
* timer.scheduleAtFixedRate(TimerTask task, long delay,long period);
*
*/
public class TimerJob4 {
private static Timer timer = new Timer();
public static class MyTask extends TimerTask {
public void run() {
System.out.println(Thread.currentThread().getName() + " TimerJob4定时任务已经执行完毕,每间隔10秒再执行一次!");
}
}
public static void main(String[] args) {
long delay = 5000; // 设置定时任务在应用程序启动5秒后执行
long period = 10000; // 设置定时任务执行的间隔时间为10秒
MyTask myTask = new MyTask();
try {
System.out.println("定时任务在5秒后执行");
timer.schedule(myTask, delay, period);
} catch (Exception e) {
e.printStackTrace();
}
}
}
run:
定时任务在5秒后执行
Timer-0 TimerJob4定时任务已经执行完毕,每间隔10秒再执行一次!
Timer-0 TimerJob4定时任务已经执行完毕,每间隔10秒再执行一次!
Timer-0 TimerJob4定时任务已经执行完毕,每间隔10秒再执行一次!
Timer-0 TimerJob4定时任务已经执行完毕,每间隔10秒再执行一次!
范例5:定时任务格式timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period)
package com.contoso;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* timer.schedule(TimerTask task, Date time);
* timer.schedule(TimerTask task,long delay);
* timer.schedule(TimerTask task, Date firsttime,long period);
* timer.schedule(TimerTask task, long delay,long period);
* timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period);
* timer.scheduleAtFixedRate(TimerTask task, long delay,long period);
*
*/
public class TimerJob5 {
private static Timer timer = new Timer();
public static class MyTask extends TimerTask {
public void run() {
System.out.println(Thread.currentThread().getName() + " TimerJob5定时任务已经执行完毕!");
System.out.println(Thread.currentThread().getName() + " TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!");
}
}
public static void main(String[] args) {
long period = 5000; // 设置定时任务执行的间隔时间
String date = "2019-10-19 22:59:00"; // 设置定时任务的执行时间
MyTask myTask = new MyTask();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date firsttime = formatter.parse(date);
System.out.println("当前系统时间:" + formatter.format(new Date()));
System.out.println("计划任务的执行时间:" + date);
// (系统当前时间 - firsttime)/period = 一旦启动应用在很短的时间内重复执行很多次,然后再间隔5秒再执行一次
timer.scheduleAtFixedRate(myTask, firsttime, period);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
run:
当前系统时间:2019-10-19 22:59:34
计划任务的执行时间:2019-10-19 22:59:00
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
Timer-0 TimerJob5定时任务已经执行完毕!
Timer-0 TimerJob5一旦启动应用在很短的时间内重复执行很多次,然后每间隔5秒再执行一次!
范例6:定时任务格式timer.scheduleAtFixedRate(TimerTask task, long delay,long period)
package com.contoso;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* timer.schedule(TimerTask task, Date time);
* timer.schedule(TimerTask task,long delay);
* timer.schedule(TimerTask task, Date firsttime,long period);
* timer.schedule(TimerTask task, long delay,long period);
* timer.scheduleAtFixedRate(TimerTask task, Date firsttime,long period);
* timer.scheduleAtFixedRate(TimerTask task, long delay,long period);
*
*/
public class TimerJob6 {
private static Timer timer = new Timer();
public static class MyTask extends TimerTask {
public void run() {
System.out.println(Thread.currentThread().getName() + " TimerJob6定时任务已经执行完毕,然后每间隔10秒再执行一次!");
}
}
public static void main(String[] args) {
long delay = 5000; // 设置定时任务在应用程序启动5秒后执行
long period = 10000; // 设置定时任务执行的间隔时间
MyTask myTask = new MyTask();
try {
System.out.println("定时任务在5秒后执行");
timer.scheduleAtFixedRate(myTask, delay, period);
} catch (Exception e) {
e.printStackTrace();
}
}
}
run:
定时任务在5秒后执行
Timer-0 TimerJob6定时任务已经执行完毕,然后每间隔10秒再执行一次!
Timer-0 TimerJob6定时任务已经执行完毕,然后每间隔10秒再执行一次!
Timer-0 TimerJob6定时任务已经执行完毕,然后每间隔10秒再执行一次!
Timer-0 TimerJob6定时任务已经执行完毕,然后每间隔10秒再执行一次!
Timer-0 TimerJob6定时任务已经执行完毕,然后每间隔10秒再执行一次!