Cron表达式是由6所需的字段和一个可选字段由空格分隔 spa
Cron表达式的格式:秒 分 时 日 月 周 年(可选) ci
Field Name | |
Allowed Values | |
Allowed Special Characters |
---|---|---|---|---|
Seconds | |
0-59 | |
, - * / |
Minutes | |
0-59 | |
, - * / |
Hours | |
0-23 | |
, - * / |
Day-of-month | |
1-31 | |
, - * ? / L W |
Month | |
1-12 or JAN-DEC | |
, - * / |
Day-of-Week | |
1-7 or SUN-SAT | |
, - * ? / L # |
Year (Optional) | |
empty, 1970-2199 | |
, - * / |
“*”字符被用来指定全部的值。如:"*"在分钟的字段域里表示“每分钟”。 io
“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你须要经过在这两个域中的一个来指定一些东西的时候,它是有用的。因为"月份中的日期"和"星期中的日期"这两个元素互斥的,必需要对其中一个设置一个问号. table
“-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。"0 0 9 ? * 2-6" 周一到周五天天上午9点 ast
“,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期1、星期3、星期五”。 im
“/”字符用于指定增量。如:“0/15”在秒域意思是每分钟的0,15,30和45秒。“5/15”在分钟域表示每小时的5,20,35和50。符号“”在“/”前面(如:/10)等价于0在“/”前面(如:0/10)。记住一条本质:表达式的每一个数值域都是一个有最大值和最小值的集合,如:秒域和分钟域的集合是0-59,日期域是 1-31,月份域是1-12。字符“/”能够帮助你在每一个字符域中取相应的数值。如:“7/6”在月份域的时候只有当7月的时候才会触发,并非表示每一个6月。 英文
L是‘last’的省略写法,在day-of-month和day-of-week域两个字段中意思不一样,例如day-of- month域中表示一个月的最后一天("0 15 10 L * ?"每个月最后一日的上午10:15触发)。若是在day-of-week域表示‘7’或者‘SAT’,若是在day-of-week域中前面加上数字,它表示一个月的最后星期几,例如‘6L’就表示一个月的最后一个星期五。 tab
字符“W”只容许日期域出现。这个字符用于指定日期的最近工做日。例如:若是你在日期域中写 “15W”,表示:这个月15号最近的工做日。因此,若是15号是周六,则任务会在14号触发。若是15好是周日,则任务会在周一也就是16号触发。若是是在日期域填写“1W”即便1号是周六,那么任务也只会在下周一,也就是3号触发,“W”字符指定的最近工做日是不可以跨月份的。字符“W”只能配合一个单独的数值使用,不可以是一个数字段,如:1-15W是错误的。 集合
“L”和“W”能够在日期域中联合使用,LW表示这个月最后一周的工做日。 di
字符“#”只容许在星期域中出现。这个字符用于指定本月的某某天。例如:“6#3”表示本月第三周的星期五(6表示星期五,3表示第三周)。“2#1”表示本月第一周的星期一。“4#5”表示第五周的星期三。(用在母亲节和父亲节再合适不过了)
小提示:
周字段的设置,若使用英文字母是不区分大小写的 MON 与mon相同.
例子列举: