Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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 我可以使用类计时器将日期传递给scheduleAtFixedRate方法吗?_Java_Timer - Fatal编程技术网

Java 我可以使用类计时器将日期传递给scheduleAtFixedRate方法吗?

Java 我可以使用类计时器将日期传递给scheduleAtFixedRate方法吗?,java,timer,Java,Timer,我读了很多关于使用定时器的答案。我试图了解如何将日期(或我不能?)传递给有两种形式的方法: 1) void scheduleatfixedrate(TimerTask任务,长延迟,长周期) 2) void scheduleAtFixedRate(TimerTask任务,第一次日期,长周期)(我现在指的是这个表单) 我用的是第二种形式,比如: //creating a new instance of timer class Timer timer = new Timer();

我读了很多关于使用定时器的答案。我试图了解如何将日期(或我不能?)传递给有两种形式的方法:

1)
void scheduleatfixedrate(TimerTask任务,长延迟,长周期)

2)
void scheduleAtFixedRate(TimerTask任务,第一次日期,长周期)
(我现在指的是这个表单)

我用的是第二种形式,比如:

//creating a new instance of timer class
        Timer timer = new Timer();
        TimerTask task = new Helper();

        Date date = new Date();

        timer.scheduleAtFixedRate(task, date, 5000);

其中
date
未使用任何指定值。但在本例中,我可以指定日期吗?如果我错了,请纠正我。

您似乎被javadoc弄糊涂了

使用
Date
相关代码的原因只有一个:

所有调度方法都接受相对延迟和周期作为参数,而不是绝对时间或日期。将表示为日期的绝对时间转换为所需的形式很简单。例如,要在未来某个日期进行计划,可以使用:schedule(task,date.getTime()-System.currentTimeMillis(),TimeUnit.millises)

换句话说:当您打算设置一个日期对象来表示2018年8月1日,并且希望代码在该日运行时,您可以使用上述代码来实现

换句话说:您使用日期算法来计算在特定日期/时间启动任务所需的延迟

只是想澄清一下:您自己的问题代码示例(
timer.scheduleAtFixedRate(task,date,5000);
),此代码无效


该类中没有直接获取日期对象的方法。所有方法只接受长值,表示初始延迟

“Where date used without any specified value”是什么意思?您正在传递需要开始此操作的日期,这是您想要的,对吗?我的意思是,我可以指定日期,何时执行此方法还是否?@GhostCat,感谢您的帮助!你的回答很有帮助,但我想还是这里有相同的逻辑?只是更新了我的问题-。我考虑的是类计时器,而不是接口ScheduledExecutorService