一、Cron表达式
字段 |
允许值 |
允许的特殊字符 |
是否必填 |
秒 |
0~59 |
, - * / |
是 |
分 |
0~59 |
, - * / |
是 |
小时 |
0~23 |
, - * / |
是 |
日 |
1-31 |
, - * / L W C |
是 |
月 |
1-12 或JAN-DEC |
, - * / |
是 |
周 |
1-7 或者 SUN-SAT |
, - * / L C # |
是 |
年 |
empty,1970-2099 |
, - * / |
否 |
特殊字符含义
特殊字符 | 含义 |
* |
表示所有值,例如在分的字段上设置"*",表示每一分钟都会触发 |
? |
表示不指定值,使用的场景为不需要关心这个字段的值,例如:要在每月的10号触发一个操作,但不关心是周几,可以在周位置的那个字段设置为"?",具体设置为 0 0 0 10 * ? |
- |
表示区间,例如在小时上设置"10-12",表示10,11,12点都会触发 |
, |
表示指定多个值,例如在周字段上设置"MON,WED,FRI"表示周一,周三和周五触发 |
/ |
用于递增触发。如在秒上面设置"5/15", 表示从第5s开始每递增15s触发(5s,20s,35s,50s) |
L |
表示最后的意思,在日字段设置,表示当月的最后一天。在周字段上表示星期六,相当于"7"或"SAT" |
W |
表示离指定日期的最近那个工作日(周一至周五),例如在日字段上设置"15W",表示每月15号最近的那个工作日触发 |
# |
序号,例如在周字段上设置"6#3"表示在每月的第三个周六,注意如果指定"#5",正好第5周没有周六,则不会触发该配置 |
二、Cron表达式示例
表达式 |
含义 |
0 50 9 ? * * |
每天9点50分触发 |
0 0/5 9 * * ? |
每天9点到9点59分(整点开始,每隔5分钟触发) |
0 50 9 ? * MON-FRI |
从周一到周五每天9点50分触发 |
0 50 9 ? * 6#3 |
每月的第三周的星期五的9点50分开始触发 |
0 50 9 ? * 6L 2021-2012 |
从2021年到2012年每月最后一周的星期五的9点50分开始触发 |