Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

スケジューラについて

スケジューラを用いて決まった時間にプログラムを実行しようと思い、以下のようにコーディングしました。
Timer timer = new Timer("test");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.HOUR, 0);
        timer.schedule(new TaskTimer(), cal.getTime());
しかし、このようにするとスケジュールした時に1度TaskTimerが実行されてしまいます。
時間が来るまで実行しないようにする方法を教えてください。

1

回答

5657

閲覧

1件の回答

評価

0

その時間の指定の仕方だと、現在日時の時間だけ0時にした日時が指定されます。
既に過ぎている時刻なので直ちに実行されるのでしょう。
日時をフルで指定してください。

ところで、毎日指定時刻に実行したいのでしょうか?
その場合は、scheduleAtFixedRateメソッドを使用するのが適当です。
詳しくはJavaDocを参照してください。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。