Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:
- Seconds Minutes Hours DayofMonth Month DayofWeek Year
- Seconds Minutes Hours DayofMonth Month DayofWeek
每一个域可出现的字符如下:
格式: | 秒 | 分 | 时 | 天(月) | 月 | 天(星期) | 年 |
---|---|---|---|---|---|---|---|
可出现字符 | , - * / | , - * / | , - * / | , - * / ? L W | , - * / | , - * / ? L # | , - * / |
有效整数 | 0-59 | 0-59 | 0-23 | 1-31 | 1-12 | 1-7 | 1970-2099 |
符号 | 规则 |
---|---|
* | 表示匹配该域的任意值。假如在Seconds 域使用*, 即表示每秒都会触发事件 |
? | 只作用于DayofMonth和DayofWeek两个域。因为DayofMonth和DayofWeek会相互影响。如果都为任意,则其中一个设置了值,另一个一定为 ?,否则会相互影响 |
- | 表示范围 |
/ | 起始时间/间隔,任一个域都可以使用 |
, | 表示列出枚举值。第1分钟和第3分钟都触发,* 1,2 * * * ? * |
L | Last,表示最后,只能出现在DayofWeek和DayofMonth域。在DayofMonth中只能是L表示每一个月的最后一天,出现在DayofWeek中,在L中可以加数字,如1L表示最后一周的周一 |
W | 表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。 |
LW | 这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。 |
# | 用于确定每个月第几个星期几,只能出现在DayofWeek域。3#5,表示第三周 星期五 |
给出一个在线cron表达式的链接
http://cron.qqe2.com/