JDK实现规定时间执行规定任务代码

来源:互联网 发布:网络推手是什么意思 编辑:程序博客网 时间:2024/04/29 23:55

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 *
 */

/**
 * @author Administrator
 *
 */
public class TestTimer {

 
 public static void main(String[] args) {

  //获得当天的日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
    Date date = new Date();
    //定义开始时间字符串
//    String timeStr = "22:20:20";
    String timeStr = "22:58:00";
    timeStr = sdf.format(date)+timeStr;
    System.out.println("timeStr:"+timeStr);
    //获得当天的指定时间的date对象
    sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    try {
    date = sdf.parse(timeStr);
   } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
    //判断今天的执行时间是否已经过去,如果过去则改为明天
    if(date.getTime()<System.currentTimeMillis()){
     System.out.println("要执行的时间:"+sdf.format(new Date(date.getTime()+1000*5)));
     date = new Date(date.getTime()+24*60*60*1000);
    }
   
    Timer timer = new Timer();
    TimerTask task = new TimerTask(){
    
     public void run() {
      //your task
      System.out.println("需要执行的事物");
     }
    };
   
   
    timer.scheduleAtFixedRate(task, date, 5*1000);
    System.out.println("TimerTask:"+sdf.format(new Date(task.scheduledExecutionTime())));
}
}

 

原创粉丝点击