Cron 定时任务表达式

基本语法

共 7 位,最后一位可选,可以不写,至少 6 位,每位之间用空格分隔,从左到右各位置分别是:

位置 意义 取值 支持的符号
1 0-59 , - * /
2 0-59 , - * /
3 0-23 , - * /
4 1-31 , - * ? / L W C
5 1-12 或 JAN - DEC , - * /
6 1-7 或 MON - SAT , - * ? / L C #
7 空或 1970-2099 , - * /

注:Cron 表达式对日期英文缩写、特殊字符大小写不敏感。

符号说明

符号 名称 功能
* 星号 表示重复对应位置上的周期,比如在第四位上表示每日
, 逗号 代表一个列表值(指定几个值),表示多个指定时间,如周位上SAT,SUN表示每周六周日
? 问号 无意义,占位符,只能在日、周位上
- 减号 表示一个范围,如时位上 20-22表示 20、21、22点
/ 斜杠 a/b 可以表示以 a 为起点步长为 b 的时间序列,如日位上10/10表示10日20日30日
L Last 可以用在 “日”和“周几”两个字段;月份最后一天(用在日字段上)或星期六(用在周字段上)。如果是在”周几“字段中使用时,可以跟在某个数字之后,表示 ”该月最后一个星期几“周位上 6L 表示月份的最后一个周五
W Weekday 可用于 ”日“ 字段,用来指定离给定日期最近的工作日(周一到周五)但它不会越过当月的值的范围边界,如 ”15W“,表示 ”离该月15日最近的工作日“;3W 3日如是周五,则在6日(周一)执行。
# 井号 可用于 “周”字段;表示“该月第几个周几”。比如 “6#3” 表示该月第三个周五(6表示周五,#3 表示该月第三个);“2#1” 表示该月第一个周一; “4#5” 表示该月第五个周三。
C Calendar 关联的“日历”的计算结果,很少用。

注:L” 和 “W” 可在日位中联合使用,LW 表示这个月最后一周的工作日

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
0 5 * * * ? 每五分钟

0 30 5 * * ? 每天 5 点半

0 0 12 * * ? 每天中午12点

0 15 10 ?* * 每天 10:15

0 15 10 * * ? 每天 10:15

0 15 10 * * ? * 每天 10:15

0 15 10 * * ? 2005 2005年 每天 10:15

0 * 14 * * ? 每天从14点开始到14点59分结束,每1分钟触发一次

0 0/5 14 * * ? 每天从14点开始到14点55分结束,每5分钟触发一次

0 0/5 14,18 * * ? 每天 14:00 至 14:55分 和 18:00 至 18:55,每5分钟触发一次

0 0-5 14 * * ? 每天 14:00 至 14:05分 每1分钟触发一次

0 10,44 14 ? 3 WED 三月的每周三 14:10 和 14:44 触发一次

0 15 10 ? * MON-FRI 周一至周五每天的 10:15 触发一次

0 15 10 15 * ?每月15号的 10:15 触发一次

0 15 10 L * ? 每月的最后一天的 10:15 触发一次

0 15 10 ? * 6L 没有最后一个周五的 10:15 触发一次