Cron表達式(七子表達式)

一、七子含義

秒 分 時 日 月 周 年
可用的值 0~59 0~59 0~23 1~31 1~12(JAN-DEC) 1~7(SUN-SAT) 1970~2099
可用的通配符 , - * / , - * / , - * / , - * / ? L W , - * / , - * / ? L # , - * /
是否必填 是 是 是 是 是 是 否

二、可用值說明

秒(Seconds):可用數字"0~59"表示。

分(Minutes):可用數字"0~59"表示。

時(Hours):可用數字"0~23"表示。

日(Day-of-Month):可用數字"1~31"表示,但要注意具體月份的天數。

月(Month):可用數字"1~12"或單詞縮寫"JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC"表示。

周(Day-of-Week):可用數字"1~7"或單詞縮寫"SUN,MON,TUE,WED,THU,FRI,SAT"表示(用數字表示時注意"1"表示周日)。

年(Year):可用數字"1970~2099"表示,此項非必填。

三、可用通配符說明

通配符 適用域 含義 實例
* 所有 表示所有值 在分的位置上設置"*",表示每分鐘都會觸發。
? 日和周
(日和周不能同時為"?")
不需要關心當前位置的值,表示每月的某一天,或每周的某一天 "0 0 0 1 * ?"表示每月1號觸發,但不關心是周幾,所以周的位置設置為"?";
"0 0 0 ? * 2"表示每周一觸發,但不關心是多少號,所以日的位置設置為"?"。
- 所有 表示區間 在時的位置上設置"10-12",表示"10點、11點、12點"觸發。
, 所有 表示指定多個值 在周的位置上設置"MON,WED,FRI",表示"周一、周三、周五"觸發。
/ 所有 用於遞增觸發 在秒的位置上設置"5/15",表示從5秒開始,每隔15秒觸發一次(5,20,35,50)。
在月的位置上設置"1/7",表示每月1號開始,每隔7天觸發一次。
L(Last) 日和周 表示每月或每周的最後一天;
XL表示每月的最後一個周X
"0 0 0 L * ?"表示每月的最後一天觸發;
"0 0 0 ? * L"表示每月的最後一個周六觸發;
"0 0 0 ? * 2L"表示每月的最後一個周一觸發。
W(Work) 日 表示離指定日期最近的工作日(周一至周五,忽略節假日)("W"前的數字表示多少號) 在日的位置上設置"15W",表示離15號的最近的工作日觸發(若15號為周六,則14號觸發;若15號為周日,則16號觸發;若15號為工作日,則當天觸發);
在日的位置上設置"1W",表示當月1號往後最近的工作日觸發。(若1號為周六,則3號觸發);
"L"和"W"可組合使用。如果在日欄位上設置"LW",則表示在本月的最後一個工作日觸發。
# 周 N#M表示每月的第M個周N "0 0 0 ? 5 1#2"表示母親節(每年5月的第二個周日);
"0 0 0 ? 6 1#3"表示父親節(每年6月的第三個周日)。

附:在線Cron表達式生成器 (pppet.net)

Tags: