2017-02-09 56 views
1

我如何使scheduleAtFixedRate在小時而不是ms接受參數,如下所示?該程序應定期運行1小時,即11:25:00:00,12:25:00:00等。使scheduleAtFixedRate接受小時而不是ms?

public class Kronos { 
     public static void main(String[] args) throws ParseException { 
      DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
      Date d = dateFormatter.parse("2017-02-09 11:25:00"); 

      long hours = 1; 
      long msPerHour = 3600000; 
      long period = hours * msPerHour; 

      Timer timer = new Timer(); 
      TimerTask taskNew = new TimerTask() { 
       @Override 
       public void run() { 
        System.out.println("ALL WORK AND NO PLAY MAKES JACK A DULL BOY"); 
       } 
      }; 

      taskNew.scheduledExecutionTime(); 
      timer.scheduleAtFixedRate(taskNew, d, period); 
     } 
    } 

起初,我認爲像TimeFormat.HOURS,但我不知道如何實現它?

+0

你是什麼意思「接受幾小時的爭論」?你的代碼做你想要的... – IQV

+1

你可以使用'TimeUnit.HOURS.toMillis(小時)' –

+0

使用'TimeUnit.HOURS.toMillis(numberOfHours)'。 –

回答

0

TimeUnit.HOURS.toMillis(hours)是轉換小時到毫秒簡潔的方式。有問題的方法似乎不能接受除毫秒之外的任何其他內容。

相關問題