Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将来如何在特定日期在java中运行任务_Java_Oracle_Timer_Scheduled Tasks_Futuretask - Fatal编程技术网

将来如何在特定日期在java中运行任务

将来如何在特定日期在java中运行任务,java,oracle,timer,scheduled-tasks,futuretask,Java,Oracle,Timer,Scheduled Tasks,Futuretask,我必须在将来调用一个方法,所以我找到了一些示例 链接在那里吗 但我只能运行一次。 日期和时间:2014年3月11日10:15:20(dd-MM-yyyy-HH:MM:SS) 我怎么做???计算从现在到目标日期之间的延迟,并将此延迟作为参数调用: Date targetDate = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse(dateAsString); long delayInMillis = targetDate - System.cu

我必须在将来调用一个方法,所以我找到了一些示例 链接在那里吗

但我只能运行一次。 日期和时间:2014年3月11日10:15:20(dd-MM-yyyy-HH:MM:SS)


我怎么做???

计算从现在到目标日期之间的延迟,并将此延迟作为参数调用:

Date targetDate = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse(dateAsString);
long delayInMillis = targetDate - System.currentTimeMillis();
scheduler.schedule(task, delayInMillis, TimeUnit.MILLISECONDS);
该类正好满足您的需要:

首先,设置要计划的任务:

TimerTask task = new TimerTask() {

  void run() {
    //do the task
  }

};
第二,安排任务:

Date futureDate = ...///whenever you want
Timer timer = new Timer();
timer.schedule(task, futureDate); 

完成。但是你真的应该能够自己解决这个问题。一项任务是不能被关闭的。是否要关闭计划程序?你可以从任务中完成它。