概念
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)
每个字段定义
| 字段 | 是否必填 | 允许值 | 允许特殊字符 | 备注 |
|---|
| Seconds | 是 | 0–59 | *``,``- | |
| Minutes | 是 | 0–59 | *``,``- | |
| Hours | 是 | 0–23 | *``,``- | |
| Day of month | 是 | 1–31 | *``,``-``?``L``W | ?``L``W只有部分软件实现了 |
| Month | 是 | 1–12 or JAN–DEC | *``,``- | |
| Day of week | 是 | 1–7 or SUN–SAT | *``,``-``?``L``# | ?``L``#只有部分软件实现 |
| Year | 否 | 1970–2099 | *``,``- | |
通配符定义
| 字段 | 含义 | 示例 |
|---|
| * | 任意值 | * |
| ? | 留空 | 只能用在DayofMonth和DayofWeek两个域,并且相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中DayOfWeek只能为? |
| , | 分隔符 | 12,13 |
| - | 定义范围 | 2021 - 2022 |
| L | Last代表最后 | 0L 最后一个星期日 |
| W | 指定给定日期最接近日期的工作日 | 20W,为最接近20日的工作日 |
| # | 用于确定每个月第几个星期几,只能出现在DayofMonth域 | 4#2,表示某月的第二个星期三 |
示例
0 0 6 ? * 4 * :每周三早上6点
在线工具
www.matools.com/cron