Cron 表達式結構
秒 分 時 日 月 星期 年(可選)
* * * * * ? *
| | | | | |
| | | | +-- 星期 (0-7) (Sun=0 或 7)
| | | +------ 月份 (1-12)
| | +-------- 日期 (1-31)
| +---------- 時 (0-23)
+------------ 分 (0-59)
特殊符號
| 符號 | 含義 | 範例 |
| * | 所有值 | * * * * * ? = 每分鐘 |
| ? | 不指定值(僅用於日/星期) | 10 15 * * ? = 每天 10:15 |
| - | 範圍 | 10-12 時 = 10,11,12 時 |
| , | 列舉 | MON,WED,FRI = 週一三五 |
| / | 增量 | 0/15 分 = 0,15,30,45 分 |
| L | 最後 | 日: 月底日;星期: 最後一天(六) |
| W | 工作日 | 15W = 最接近 15 號的工作日 |
| # | 第 N 個星期幾 | 6#3 = 第 3 個星期五 |
20+ 實用範例速查
| 表達式 | 觸發時間說明 |
0 0 12 * * ? | 每天中午 12:00 |
0 15 10 ? * * | 每天上午 10:15 |
0 15 10 * * ? | 每天上午 10:15(同上) |
0 15 10 * ? 2005 | 2005 年每天 10:15 |
0 * 14 * * ? | 每天 14:00-14:59 每分鐘 |
0 0/5 14 * * ? | 每天 14:00-14:55 每 5 分鐘 |
0 0/5 14,18 * * ? | 每天 14:00-14:55 和 18:00-18:55 每 5 分鐘 |
0 0-5 14 * * ? | 每天 14:00-14:05 每分鐘 |
0 10,44 14 ? 3 WED | 3 月每個週三 14:10 和 14:44 |
0 15 10 ? * MON-FRI | 週一至週五 10:15 |
0 15 10 15 * ? | 每月 15 日 10:15 |
0 15 10 L * ? | 每月最後一天 10:15 |
0 15 10 ? * 6L | 每月最後一個星期五 10:15 |
0 15 10 ? * 6L 2002-2005 | 2002-2005 年每月最後週五 10:15 |
0 15 10 ? * 6#3 | 每月第三個星期五 10:15 |
0 6 * * * | 每天早上 6:00(標準 cron 5 欄位) |
0 */2 * * * | 每 2 小時(標準 cron) |
0 23-7/2,8 * * * | 23:00-07:00 每 2 小時,另加 08:00 |
0 11 4 * 1-3 | 每月 4 號及週一至週三 11:00 |
0 4 1 1 * | 1 月 1 日 04:00 |
線上驗證工具
常見陷阱
- 秒欄位:Quartz 為 6/7 欄位,標準 Linux cron 為 5 欄位(無秒)
- ? 與 *:日與星期欄位必須有一個用
?
- L 與 W 組合:
LW = 月最後一個工作日
- 時區:JVM 時區影響觸發時間,建議明確設定
TimeZone