Cron表达式速查,1张表记清楚
Cron表达式是一个字符串,定义时间规则,由6或7个时间域组成,空格分隔。1张表整理清楚含义和规则,并举例常用表达式,放手边速查。
Cron表达式
时间域序号 | 含义 | 取值范围 | 特殊字符 |
---|---|---|---|
1 | 秒Seconds | 0-59 | ,-*/ |
2 | 分钟Minutes | 0-59 | ,-*/ |
3 | 小时Hours | 0-23 | ,-*/ |
4 | 日期DayOfMonth | 1-31 | ,-*/ ? L W C |
5 | 月份Month | 1-12 | ,-*/ JAN-DEC |
6 | 星期DayOfWeek | 1-7 | ,-*/ ? L C # SUN-SAT |
7 | 年Year (可选) | 1970-2099 | ,-*/ |
特殊字符含义
JAN-DEC 月份英语简称
SUN-SAT 星期英语简称
星期的1表示星期天,2表示星期一,依次类推
* 表示取值范围内的所有数字
/ 表示每隔固定时间触发依次,比如0/5表示从0开始每5个单位时间
- 表示两个数字之间的范围,比如3-7表示3到7之间,包含3和7
, 表示离散的枚举数字,比如2,3,5,7表示指定的这几个时间
? 只能用在日期DayOfMonth和星期DayOfWeek两个域,表示不指定,避免日期和星期的互相影响,比如指定每月的20日,不管是星期几,正确写法是:0 0 0 20 * ?,其中星期只能用?,如果使用*将触发错误。
L 只能用于日期DayOfMonth和星期DayOfWeek,用于日期时表示月份的最后一天,用于星期时不加数字表示周六,加数字表示最后一个周几,比如0 0 0 ? * 5L表示每月的最后一个星期四
W 只能用于日期DayOfMonth,表示周一到周五有效工作日,将在离指定日期的最近的有效工作日触发事件。例如在日期使用5W,如果5日是星期六,则将在最近的工作日星期五(4日)触发。如果5日是星期天,则在6日(星期一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近工作日寻找不会跨月份。
LW 两个字符连用时表示某个月最后一个工作日
# 只能用于星期DayOfWeek,表示每个月第几个星期几,比如4#2表示第二个星期三
常用表达式
0/5 * * * * ? 每5秒钟
0 0/5 * * * ? 每5分钟
0 0 6 * * ? 每天早上6点
0 0 9,13,19 * * ? 每天上午9点,下午1点,晚上7点
0 0 23-7/2,8 * * ? 每天晚上11点到早上7点之间的每两个小时,和早上8点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 9-21 ? * MON-SAT 表示996每天的每小时
0 0 7 LW * ? 每月最后一个工作日早上7点
0 0 4 1 1 ? 每年的1月1日早上4点
备忘
* * * * * ?
秒 分 时 日 月 星期 年
0 0 6 * * ? 日【*】 每日 时【6】 固定时间6点 结果: 每天6点
0 0 6,7 * * ? 日【*】 每日 时【6,7】 固定时间6点,7点 结果: 每天6点,7点
0 0/5 * * * ? 时【*】 每小时 分【0/5】从0开始每5分钟 结果:每小时 5 15 20 25 30 35 40 45 50 55 60
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)