java Timer 定时每天凌晨1点执行任务

时间:2022-06-29 07:58:48
  1. import java.util.TimerTask;  
  2. /** 
  3.  * 执行内容 
  4.  * @author admin_Hzw 
  5.  * 
  6.  */  
  7. public class Task extends TimerTask {  
  8.     public void run() {  
  9.         System.out.println("我有一头小毛驴!");   
  10.     }  

  1. }

  2.   
  1. import java.util.Calendar;  
  2. import java.util.Date;  
  3. import java.util.Timer;  
  4.   
  5. /** 
  6.  * 任务管理 
  7.  * @author admin_Hzw 
  8.  * 
  9.  */  
  10. public class TimerManager {  
  11.   
  12.     /** 
  13.      * @param args 
  14.      */  
  15.     public static void main(String[] args) {  
  16.         new TimerManager();    
  17.     }  
  18.   
  19.     //时间间隔(一天)  
  20.     private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;  
  21.     public TimerManager() {  
  22.         Calendar calendar = Calendar.getInstance();  
  23.         calendar.set(Calendar.HOUR_OF_DAY, 1); //凌晨1点  
  24.         calendar.set(Calendar.MINUTE, 0);  
  25.         calendar.set(Calendar.SECOND, 0);  
  26.         Date date=calendar.getTime(); //第一次执行定时任务的时间  
  27.         //如果第一次执行定时任务的时间 小于当前的时间  
  28.         //此时要在 第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。  
  29.         if (date.before(new Date())) {  
  30.             date = this.addDay(date, 1);  
  31.         }  
  32.         Timer timer = new Timer();  
  33.         Task task = new Task();  
  34.         //安排指定的任务在指定的时间开始进行重复的固定延迟执行。  
  35.         timer.schedule(task,date,PERIOD_DAY);    // 这里其实调用的是 public void schedule(TimerTask task,Date firstTime,long period) // firstTime--这是首次该任务将被执行的时间,即便设置时间为凌晨1点执行,如果不// 加一天,任务会立即执行的话,那么下次执行的时刻是在距此次执行任务时刻的24小 //时后执行,如果现在是14点执行了一次,那么明天14点才会执行第二次,而不是在//凌晨1点执行
  36.     // 增加或减少天数  
  37.     public Date addDay(Date date, int num) {  
  38.         Calendar startDT = Calendar.getInstance();  
  39.         startDT.setTime(date);  
  40.         startDT.add(Calendar.DAY_OF_MONTH, num);  
  41.         return startDT.getTime();  
  42.     }  
  43.   
  44. }  

quartz用法:http://www.cnblogs.com/monian/p/3822980.html