CRON 表达式

291 阅读1分钟

概念

CRON表达式是一个字符串,包含五个到七个由空格分隔的字段(每种软件不一样),表示一组时间

CRON 格式

    *    *    *    *    *    * 
    -    -    -    -    -    -
    |    |    |    |    |    |
    |    |    |    |    |    + year(1970~2099)
    |    |    |    |    +----- day of week (1 - 7) (Sunday=1 ) OR sun,mon,tue,wed,thu,fri,sat
    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
    |    |    +--------------- day of month (1 - 31)
    |    +-------------------- hour (0 - 23)
    +------------------------- minute (0 - 59)

每个字段定义

字段是否必填允许值允许特殊字符备注
Seconds0–59*``,``-
Minutes0–59*``,``-
Hours0–23*``,``-
Day of month1–31*``,``-``?``L``W?``L``W只有部分软件实现了
Month1–12 or JAN–DEC*``,``-
Day of week1–7 or SUN–SAT*``,``-``?``L``#?``L``#只有部分软件实现
Year1970–2099*``,``-

通配符定义

字段含义示例
*任意值*
?留空只能用在DayofMonth和DayofWeek两个域,并且相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中DayOfWeek只能为?
,分隔符12,13
-定义范围2021 - 2022
LLast代表最后0L 最后一个星期日
W指定给定日期最接近日期的工作日20W,为最接近20日的工作日
#用于确定每个月第几个星期几,只能出现在DayofMonth域4#2,表示某月的第二个星期三

示例

0 0 6 ? * 4 * :每周三早上6点

在线工具

www.matools.com/cron