cron 的表達式是字符串,其實是由七子表達式(從左到右),描述個別細節的時間表。這些子表達式是分開的空白。工具
順序(從左到右) | 子串 | 有效數字 | 有效字符 |
---|---|---|---|
1 | Seconds(秒) | 0~59 的整數 | , 和 - 和 * 和 / |
2 | Minutes(分) | 0~59 的整數 | , 和 - 和 * 和 / |
3 | Hours(小時) | 0~23 的整數 | , 和 - 和 * 和 / |
4 | Day-of-Month(日期) | 1~31 的整數 | , 和 - 和 * 和 / 和? 和L 和W 和C |
5 | Month(月份) | 1~12 的整數或者 JAN-DEC | , 和 - 和 * 和 / |
6 | Day-of-Week(星期) | 1~7 的整數或者 SUN-SAT | , 和 - 和 * 和 / 和? 和L 和W 和C |
7 | Year (可選字段) | 1970~2099 | , 和 - 和 * 和 / |
字符 | 適用域 | 含義 | 實例 |
---|---|---|---|
* |
ALL | 表示匹配該域的任意值。 | |
? |
只在DayofMonth 和 DayofWeek |
也表示匹配域的任意值,但實際不會。由於 DayofMonth 和 DayofWeek 會相互影響。 | 例如想在每個月的 20 日觸發調度,無論 20 日究竟是星期幾,則只能使用以下寫法: 13 13 15 20 * ?, 其中最後一位只能用?,而不能使用,若是使用表示無論星期幾都會觸發,實際上並非這樣。 |
- |
ALL | 表示範圍。 | 例如在 Minutes 域使用 5-20,表示從 5 分到 20 分鐘每分鐘觸發一次 |
/ |
ALL | 表示起始時間開始觸發,而後每隔固定時間觸發一次。 | 例如在 Minutes 域使用 5/20, 則意味着 5 分鐘觸發一次,而 25,45 等分別觸發一次. |
, |
ALL | 表示列出枚舉值。 | 例如:在 Minutes 域使用 5,20,則意味着在 5 和 20 分每分鐘觸發一次。 |
L |
只在DayofMonth 和 DayofWeek |
表示最後。 | 若是在 DayofWeek 域使用 5L, 意味着在最後的一個星期四觸發。 |
W |
DayofMonth |
表示有效工做日 (週一到週五)。系統將在離指定日期的最近的有效工做日觸發事件。 | 例如:在 DayofMonth 使用 5W,若是 5 日是星期六,則將在最近的工做日:星期五,即 4 日觸發。若是 5 日是星期天,則在 6 日 (週一) 觸發;若是 5 日在星期一到星期五中的一天,則就在 5 日觸發。另一點,W 的最近尋找不會跨過月份 。 |
LW |
DayofWeek |
這兩個字符能夠連用,表示在某個月最後一個工做日。 | 有可能不是星期五,例如:某個月的 31 號爲週二,那麼此知足最後一個工做日,但不是週五。 |
# |
DayofMonth |
用於肯定每月第幾個星期幾。 | 例如在 4#2,表示某月的第二個星期三。 |
在線 Cron 表達式生成器.net