在我的代码中,我试图写一个应该每24小时触发一次的任务。第一个触发器应该是在计划定时器时,然后每天早上7点。我正在使用
java.util.TimerTask
我写了这样的话:
Calendar today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 7);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
timer.schedule(task1, today.getTime(), TimeUnit.MILLISECONDS.convert(24, TimeUnit.HOURS));
每次运行我的应用程序时都会启动任务(如预期的那样?)...但午夜后如果我运行我的应用程序,则不会触发任务。
错误在哪里?
感谢
答案 0 :(得分:0)
您提供当天(不是第二天)的07:00:00
为firstTime
。
因此,如果时间是早上7点之后,您的firstTime
就在过去。可能这就是为什么任务立即开始的原因。
如果时间是"在午夜之后"可能在早上7点之前,firstTime
将来。所以你必须等到早上7点开始任务。