簡體   English   中英

Java Timer在午夜之后無法啟動

[英]Java Timer doesn t start after midnight

在我的代碼中,我試圖編寫一個應該每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));

碰巧每次我運行我的應用程序時都會啟動該任務(如預期嗎?)...但是午夜之后,如果我運行我的應用程序,則不會觸發任務。

錯誤在哪里?

謝謝

您所提供07:00:00當天(不次日)作為firstTime

因此,如果時間是早上7點以后,那么您的firstTime是過去的時間。 也許這就是為什么立即啟動任務的原因。

如果時間是“午夜之后”(可能是早上7點之前),則firstTime是將來的時間。 因此,您必須等待早上7點才能開始任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM