しくみ
式をフィールドに分け、各フィールドを実際に一致する値に展開します。次回の実行は、選んだタイムゾーンの時計で1日ずつ先へたどり、最大8年先まで探すので、2月29日のようなまれな日付も表示されます。従来のUnix cronでは日と曜日の両方を指定するとどちらか一方が合えば実行され、SpringとQuartzでは両方が合う必要があります。
*/15 9-17 * * MON-FRI → 15分ごと、9時から17時、平日
フィールド案内
- *:すべての値。*/15:最初から15ごと。5/15:5から15ごと。
- 9-17:9から17までの範囲。1,15:1日と15日だけ。
- 名前:MON–SUN、JAN–DEC(大文字・小文字は区別しません)。短縮表記:@yearly、@monthly、@weekly、@daily、@hourly。
- L:月末日(L-3は月末の3日前)。15W:15日に最も近い平日。LW:最後の平日。
- FRI#2:第2金曜日。5L:最後の金曜日(Quartzの番号)。?:値を指定しない。
- 6・7フィールド:先頭が秒です。Quartzは末尾に年を付けられ、曜日を1(日曜)〜7(土曜)で数えます。
活用のヒント
- 「毎週月曜9時」は0 9 * * MONです。日は*のまま、曜日だけを見ます。
- 0 0 29 2 *は次のうるう日を探します。2月29日のない年は自動で飛ばします。
- すべてブラウザ内で動き、アップロードしません。
計算の基準と出典
- cron形式はPOSIX crontab定義と広く使われるVixie/ISC cron方式に従う
最終確認 2026年10月12日
よくある質問
5つのフィールドの意味は?
左から分(0–59)、時(0–23)、日(1–31)、月(1–12)、曜日(0–6、日曜が先頭)です。0 9 * * MONは毎週月曜9時という意味です。
日と曜日を両方指定すると?
どちらかに合えば実行されます。たとえば0 9 1 * MONは毎月1日と毎週月曜に動きます。このOR規則が伝統的なcronの動作です。
0 0 29 2 *が飛ぶ年があるのはなぜ?
2月29日はうるう年にしかないため、他の年は一致がなく、次回実行は次のうるう日に進みます。
実行時刻は自分の時間帯ですか?
はい。標準では端末の時計を基準に現地時間で表示します。タイムゾーンを変えると、UTCやニューヨーク時間で動くサーバーでいつ実行されるかも確認できます。