Quartz之cron表达式详解

前言cron expression

使用过 Quartz 定时调度框架的都知道常用的有两种触发器。 SimpleTriggerCronTrigger, 本章的主角 CronTrigger 通过 cron表达式 来设置什么时候触发任务。

表达式格式

crontab 命令常见于 Unix类Unix 的操作系统之中,用于设置周期性被执行的指令。 CronTrigger 使用的就是 cron表达式
格式:[秒] [分] [时] [日] [月] [周] [年]
共7个子表达式, 用空格隔开。

字段 是否必填 允许值 允许的特殊字符
0~59 ,-*/
0~59 ,-*/
0~23 ,-*/
1~31 ,-*?/LWC
1~12或者JAN-DEC ,-*/
1~7或者SUN-SAT ,-*?/LC#
empty,1970~2099 ,-*/

特殊字符

  • “?”字符:表示不确定的值
  • “,”字符:指定数个值
  • “-“字符:指定一个值的范围
  • “/“字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
  • “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
  • “W”字符:指定离给定日期最近的工作日(周一到周五)
  • “#”字符:表示该月第几个周X。6#3表示该月第3个周五

实例

  • 每天10点15分: 0 15 10 ? * *
  • 每天下午的2点到2点59分(整点开始, 每隔5分触发): 0 0/5 14 * * ?
  • 周一到周五每天上午的10点15分: 0 15 10 ? * MON-FRI
  • 每月的第三周的星期五: 0 15 10 ? * 6#3
  • 2016年到2017年每月最后一周的星期五的10点15分: 0 15 10 ? * 6L 2016-2017