解釋 Linux、Spring 或 Quartz 的 cron,也可以依欄位產生,並按這台電腦的本地時間列出接下來 10 次執行。 產生 Crontab
可選 Linux Crontab(5 位)、Spring @Scheduled(6 位,秒在最前)或 Quartz(6 位,也可以再加年)。頁面逐段解釋,並按這台電腦的時鐘列出接下來 10 次執行。不會把工作裝進系統。若要依每天幾點,或 @daily 這種寫法來產生,用 Cron 表達式產生器。時間戳用 Unix 時間戳。
*/15 9-17 * * 1-5,Spring 0 */15 9-17 * * MON-FRI,Quartz 0 */15 9-17 ? * MON-FRI。? 換成 *;把星期數字改成 SUN–SAT,讓同一批星期保持不變。Linux 是分、時、日、月、星期。週日是 0、7 或 SUN,週一是 1。沒有 ?、L、W、#。日和星期都做了限制時,兩邊有一邊符合即可,結果裡會寫明。
Spring 在最前面加秒。週日編號和 Linux 相同。? 表示這一位不看。L 是當月最後一天。15W 是離 15 號最近的工作日,不會跨出這個月。LW 是當月最後一個工作日。MON#1 是第一個週一。6L 是最後一個週六,因為這裡的 6 是週六。
Quartz 同樣是這六位,年可以寫成 2024-2030。週日是 1 或 SUN,週一是 2,週六是 7。6L 是最後一個週五。日和星期裡應有一個是 ?,例如每天凌晨 2 點寫作 0 0 2 * * ?。如果兩邊都寫了具體值,頁面仍按「有一邊符合就執行」列出時間,並給出警告。SUN–SAT 和 JAN–DEC 不區分大小寫,三種格式裡表示同一天、同一個月。
連字號是範圍,逗號是列舉,斜線是步長。*/15 從該段的起點每隔 15。5/15 從 5 開始每隔 15 直到該段結束,所以分鐘是 5、20、35、50。時間是本地時間,不是 UTC。有秒這一位時按秒推進,否則按分鐘推進。
0 2 * * *。0 0 2 * * *。0 15 10 ? * 6L(每月最後一個週五 10:15)或 0 0 23 L * ?(每月最後一天 23:00)。Linux 沒有秒,所以是 0 2 * * *。Spring 和 Quartz 把秒放在最前,同一時刻是 0 0 2 * * *;Quartz 常寫成 0 0 2 * * ?。
表示這一位不指定。Quartz 要求日和星期裡有一個是 ?。0 0 2 * * ? 是每天凌晨 2 點。
Linux 和 Spring 裡 1 是週一,週日是 0 或 7。Quartz 裡 1 是週日,2 是週一。三種格式裡 SUN 都是週日。
接下來 10 次執行用的是這台電腦的本地時區。