什麼是Cron 表達式解析器?
cron 是 Unix/Linux 在固定時間自動執行工作的排程器,像 30 9 * * 1 這樣由五個欄位組成的字串就是 cron 表達式。除了 crontab,GitHub Actions、Kubernetes CronJob、AWS EventBridge、Google Cloud Scheduler、Spring 的 @Scheduled 等也都使用相同語法。
本工具會在你輸入的同時顯示中文說明和下次執行時間;如果有錯,也會告訴你是哪個欄位、為什麼錯。所有處理都在瀏覽器內完成。
使用方法
- 在輸入框輸入 cron 表達式,或從常用排程中選擇。
- 在結果區查看中文說明和下次執行時間。
- 在產生器中逐一選擇分、時、日、月、星期,表達式會自動更新。
- 在最下方查看接下來 10 次執行時間(依瀏覽器時區計算)。
cron 表達式結構
| 順序 | 欄位 | 可用值 |
|---|---|---|
| 1 | 分 | 0~59 |
| 2 | 時 | 0~23 |
| 3 | 日 | 1~31 |
| 4 | 月 | 1~12 或 JAN~DEC |
| 5 | 星期 | 0~7(0 和 7 都是星期日)或 SUN~SAT |
輸入 6 個欄位時,第一個會當作秒(0~59)處理(Spring、Quartz 方式)。也支援 @daily、@weekly、@hourly 等巨集。
特殊字元的意義
| 符號 | 意義 | 範例 | 結果 |
|---|---|---|---|
| * | 所有值 | * * * * * | 每分鐘 |
| , | 列出多個值 | 0 9,18 * * * | 上午9點、下午6點 |
| - | 範圍 | 0 9 * * 1-5 | 平日上午9點 |
| / | 間隔 | */10 * * * * | 每10分鐘 |
如果同時指定「日」和「星期」(例如 0 0 13 * 5),標準 cron 只要其中一個符合就會執行:不是只有 13 號星期五,而是每月 13 日和每週五都會執行,請特別注意。
常見問題
為什麼伺服器上的執行時間差了 8 小時?
cron 會依照所在機器的時區執行。如果伺服器設定為 UTC,想在台灣時間上午 9 點執行,就要寫成 UTC 凌晨 1 點(0 1 * * *),或把 TZ 改成 Asia/Taipei。GitHub Actions 和 AWS EventBridge 一律使用 UTC。
支援 L、W、# 語法嗎?
不支援。月底(L)、最近的平日(W)、第 n 個星期幾(#)是 Quartz 等部分系統專用的語法,一般 crontab 無法使用,因此本工具會顯示為錯誤。
下次執行時間是用哪個時區?
依你的瀏覽器時區計算(顯示在清單旁)。台灣沒有日光節約時間,全年都以 UTC+8 計算。
輸入 2 月 30 日這種不存在的日期會怎樣?
語法上沒有錯,但實際上永遠不會執行,所以工具會提示未來 8 年內沒有執行時間。