1. 程式人生 > 其它 >Cron表示式速查,1張表記清楚

Cron表示式速查,1張表記清楚

Cron表示式是一個字串,定義時間規則,由6或7個時間域組成,空格分隔。1張表整理清楚含義和規則,並舉例常用表示式,放手邊速查。

Cron表示式

時間域序號 含義 取值範圍 特殊字元
1 秒Seconds 0-59 ,-*/
2 分鐘Minutes 0-59 ,-*/
3 小時Hours 0-23 ,-*/
4 日期DayOfMonth 1-31 ,-*/ ? L W C
5 月份Month 1-12 ,-*/ JAN-DEC
6 星期DayOfWeek 1-7 ,-*/ ? L C # SUN-SAT
7 年Year (可選) 1970-2099 ,-*/

特殊字元含義

JAN-DEC 月份英語簡稱
SUN-SAT 星期英語簡稱
星期的1表示星期天,2表示星期一,依次類推
* 表示取值範圍內的所有數字
/ 表示每隔固定時間觸發依次,比如0/5表示從0開始每5個單位時間
- 表示兩個數字之間的範圍,比如3-7表示3到7之間,包含3和7
, 表示離散的列舉數字,比如2,3,5,7表示指定的這幾個時間
? 只能用在日期DayOfMonth和星期DayOfWeek兩個域,表示不指定,避免日期和星期的互相影響,比如指定每月的20日,不管是星期幾,正確寫法是:0 0 0 20 * ?,其中星期只能用?,如果使用*將觸發錯誤。
L 只能用於日期DayOfMonth和星期DayOfWeek,用於日期時表示月份的最後一天,用於星期時不加數字表示週六,加數字表示最後一個周幾,比如0 0 0 ? * 5L表示每月的最後一個星期四
W 只能用於日期DayOfMonth,表示週一到週五有效工作日,將在離指定日期的最近的有效工作日觸發事件。例如在日期使用5W,如果5日是星期六,則將在最近的工作日星期五(4日)觸發。如果5日是星期天,則在6日(星期一)觸發;如果5日在星期一到星期五中的一天,則就在5日觸發。另外一點,W的最近工作日尋找不會跨月份。
LW 兩個字元連用時表示某個月最後一個工作日
# 只能用於星期DayOfWeek,表示每個月第幾個星期幾,比如4#2表示第二個星期三

常用表示式

0/5 * * * * ? 每5秒鐘
0 0/5 * * * ? 每5分鐘
0 0 6 * * ? 每天早上6點
0 0 9,13,19 * * ? 每天上午9點,下午1點,晚上7點
0 0 23-7/2,8 * * ? 每天晚上11點到早上7點之間的每兩個小時,和早上8點
0 0/30 9-17 * * ? 朝九晚五工作時間內每半小時
0 0 9-21 ? * MON-SAT 表示996每天的每小時
0 0 7 LW * ? 每月最後一個工作日早上7點
0 0 4 1 1 ? 每年的1月1日早上4點