cron表达式详解

cron表达式
* * * * * ? *
分别表示的是秒,分,时,日,月,周,年
其中年可以省略
cron表达式详解

* 星号

使用星号(*) 指示着你想在这个域上包含所有合法的值。例如,*在分钟字段时,表示“每分钟”
如 0 * 17 * * ?,每天从下午5点到下午5:59中的每分钟激发一次

? 问号

该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符
? 是说不为该域指定值,这不同于星号,星号是指示着该域上的每一个值。
? 号只能用在日和周域上,但是不能在这两个域上同时使用
假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?

, 逗号

逗号 (,) 是用来在给某个域上指定一个值列表的
如:0,15,30,45 * * * * ?

/ 斜杠

斜杠 (/) 是用于时间表的递增的
x/y表达一个等步长序列,x为起始值,y为增量步长值
如:0/15 * * * * ?,表示每15秒执行一次,当秒为0,15,30,45的时候执行

- 中划线

中划线 (-) 用于指定一个范围
如:0 45 3-8 ? * *,在上午的3点至上午的8点期间,分钟数为45分时触发

L 字母

L 说明了某域上允许的最后一个值。它仅被日和周域支持
当用在日域上,表示的是在月域上指定的月份的最后一天
如:日域上0 0 8 L * ?,意义是在每个月最后一天的上午 8:00 触发
当 L 字母用于周域上,指示着周的最后一天,就是星期六 (或者数字7)(国际惯例)
如:0 59 23 ? * L,在每个月的最后一个星期六晚上的 11:59 触发
当使用于周域上,你可以用一个数字与 L 连起来表示月份的最后一个星期 X
如0 0 12 ? * 2L 说的是在每个月的最后一个星期一触发 trigger

W 字母

W 字符代表着平日 (Mon-Fri),并且仅能用于日域中
如:0 0 8 15W * ?,离该月15号的最近一个平日执行

井号

字符仅能用于周域中。它用于指定月份中的第几周的哪一天
如:0 0 8 ? 5 1#2,表示5月的第二个星期天早上8点触发