一、Quartz cron表达式支持的七个域
cron 表达式至少6位,最多7位
秒 | 分 | 时 | 日 | 月 | 周 | (年) |
名称 | 是否必须 | 允许值 | 特殊字符 |
秒 | 是 | 0-59 | , - * / |
分 | 是 | 0-59 | , - * / |
时 | 是 | 0-23 | , - * / |
日 | 是 | 1-31 | , - * ? / L W C |
月 | 是 | 1-12 或 JAN-DEC | , - * / |
周 | 是 | 1-7 或 SUN-SAT | , - * ? / L C # |
年 | 否 | 空 或 1970-2099 | , - * / |
二、特殊字符含义
秒 | 分 | 时 | 日 | 月 | 周 | (年) |
1.* (星号) 指示着你想在这个域上包含所有合法的值
0 * 17 * * ? 每天从下午5点到下午5:59中的每分钟激发一次 trigger
2.,(逗号) 在给某个域上指定一个值列表
0 0,15,30,45 * * * ? 每刻钟触发一次 trigger
3.?(问号) 仅被日和周域支持,但不能同时使用。“不关心此项,只要其他项匹配即可”
0 10,44 14 ? 3 WEB 在三月中的每个星期三的下午 2:10 和 下午 2:44 被触发
秒 | 分 | 时 | 日 | 月 | 周 | (年) |
4. / (斜杠) 用于时间表的递增,x/y表达一个等步长序列,x为起始值,y为增量步长值
0/15 0/30 * * * ? 在整点和半点时每15秒触发
5. - (中划线) 指定一个范围
0 45 3-8 ? * * 在上午3点至上午8点的45分时触发 3:45,4:45,5:45-----8:45
6. L (字母) 仅被日和周域支持,指某域上允许的最后一个值。
0 0 8 L * ? 在每个月最后一天的上午 8:00 触发
0 59 23 ? * L 每个月的最后一个星期六下午的 11:59 触发(L用在星期中,则表示星期六,等同于7)
0 0 12 ? * 2L 在每个月的最后一个星期一触发(用一个数字与 L 连起来表示月份的最后一个星期 X)
秒 | 分 | 时 | 日 | 月 | 周 | (年) |
7. W (字母) 仅能用于日域中,指离该日期最近的工作日(周一至周五)
15W表示离该月15号最近的工作日
如果15号是星期六,则匹配14号星期五;
如果15日是星期日,则匹配16号星期一;
如果15号是星期二,那结果就是15号星期二。
8. # (字母) 仅能用于周域中,指定月份中的第几周的哪一天
6#3,某月的第三个周五 (6=星期五,#3意味着月份中的第三周)。
2#1,某月的第一个星期一 (2=星期一,#1意味着月份中的第一周)。
注意,假如你指定 #5,然而月份中没有第 5 周,那么该月不会触发。