一个cron表达式有至少6个(也可能7个,6个比7个少元素秒)由空格分隔的时间元素。
从左往右按顺序依次为 :
字段 | 允许值 | 允许特殊字符 |
---|---|---|
秒 | 0~59 | , - * / |
分 | 0~59 | , - * / |
时 | 0~23 | , - * / |
日 | 1~31,但是你需要考虑你月的天数 | , - * ? / L W C |
月 | 1~12 | , - * / |
周 | 0~6 0=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT | , - * ? / L C # |
年(可选) | 1970~2099,留空 | , - * / |
特殊字符说明:
字符 | 说明 | 示例 |
---|---|---|
, | 代表多个值 |
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发 |
* | 代表所有可能的值 |
0 * * * * ? 每分钟执行一次 |
- | 代表范围 |
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发 |
/ | 用来指定数值的增量,0/5在分钟里则表示从0分开始,每5分钟,3/15在秒里表示从3秒开始,每15秒 |
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发 |
? | 仅被用于日和星期,表示不指定值,当日和星期其中之一被指定了值以后,为了避免冲突,需要将另一个的值设为? |
0 15 10 15 * ? 每月15日上午10:15触发 |
L | 仅被用于日和周,它是单词“last”的缩写,表示月的最后一天或周的最后一天。如果在“L”前有具体的内容,它就具有其他的含义了,如:日子表达式“6L”表示这个月的倒数第6天,星期子表达式“FRIL”表示这个月的最一个星期五 |
0 15 10 L * ? 每月最后一日的上午10:15触发;0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 |
W | 仅被用于日,表示离该日期最近的工作日。例如15W表示离该月15号最近的工作日,关联的匹配日期不能够跨月,如你指定1W,如果1号是星期六,结果匹配的是3号星期一,而非上个月最后的那天。W字符串只能指定单一日期,而不能指定日期范围 |
0 0 2 1W * ? 每个月离1号最近的工作日触发 |
LW | 仅被用于日,表示每个月的最后一个工作日 |
0 0 2 LW * ? 每月的最后一个工作日 |
C | 仅被用于日和星期,代表“Calendar”的意思。例如5C在日子表达式中就相当于日历5日以后的第一天,1C在星期子表达式中相当于星期日后的第一天。 | 不常用,也不是很了解 |
# | 仅被用于星期,表示每月的第几个星期几 |
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发 |