Cron 表达式

解析 Cron 表达式,预览执行时间,可视化构建

每秒
每秒
范围
间隔
开始,每隔
指定
每分
每分
范围
间隔
开始,每隔
指定
每时
每时
范围
间隔
开始,每隔
指定
每日
每日
范围
间隔
开始,每隔
指定
最后一天
每月最后一天 (L)
倒数第 N 天
倒数第
最近工作日
每月第日最近的工作日 (W)
最后工作日
每月最后一个工作日 (LW)
每月
每月
范围
间隔
开始,每隔
指定
每周
每周
范围
间隔
开始,每隔
指定
最后一个星期
最后一个
第 N 个星期
每年
每年
范围
指定

输入有效的 Cron 表达式以查看执行时间

Cron 语法说明

Cron 表达式由 5 ~ 7 个字段组成,以空格分隔。本工具支持标准 5 字段格式(Unix Cron)以及带秒和年的扩展格式(Quartz Cron)。

秒字段为 *时,表达式自动省略秒字段(显示 5 或 6 字段);当年字段为 *时,自动省略年字段,保持表达式简洁。

字段定义

字段必填允许值特殊字符说明
可选0 ~ 59省略时默认为 *
必填0 ~ 59每分钟的第几分执行
必填0 ~ 2324 小时制
必填1 ~ 31LWLW每月第几天
必填1 ~ 12月份,1 = 一月
必填0 ~ 6L#0 = 周日,1 = 周一
可选1970 ~ 2099省略时默认为 *

通配符说明

*

匹配任意值

表示该字段的每一个有效值都匹配,如分字段的 * 表示每分钟。

-

指定范围

1-5 表示 1、2、3、4、5。必须满足 起始 ≤ 结束。

,

指定多个值

1,3,5 表示 1、3、5 三个值,值的顺序不影响结果。

/

指定步长

0/5 表示从 0 开始每 5 个单位(0, 5, 10...)。*/5 等价于 0/5

特殊字符说明

L

最后 (Last)

日字段:表示月末最后一天。周字段:表示该星期最后一次出现,如 5L = 最后一个周五。

W

最近工作日

仅日字段。如 15W 表示离 15 号最近的工作日。若 15 号是周六则取周五 14 号,是周日则取周一 16 号。

LW

最后工作日

仅日字段。表示每月最后一个工作日(周一至周五)。

L-N

倒数第 N 天

仅日字段。如 L-3 表示月末倒数第 3 天。

#

第 N 个星期 X

仅周字段。格式 X#N,如 1#3 = 第 3 个周一。N 范围 1~5。

可用范围:LWLWL-N 仅日字段; L# 仅周字段。

注意事项

  • 日字段与周字段的关系:两者是"与"的关系(同时满足)。例如 0 0 1 * 1 表示"每月 1 日且是周一"才执行,而不是"每月 1 日或周一"。
  • 周字段的 0 与 7:在标准 Cron 中,0 和 7 都表示周日。本工具统一使用 0 表示周日。
  • 月天数不一致:例如指定每月 31 日执行,则 2 月、4 月、6 月等只有 30 天的月份不会触发。
  • 步长起始值1/50/5 不同,前者产生 1, 6, 11...,后者产生 0, 5, 10...。

常用示例

表达式含义
0 0 * * *每天零点执行
*/5 * * * *每 5 分钟执行
0 9 * * 1-5工作日每天 9 点执行
0 0 1 * *每月 1 日零点执行
0 0 * * 0每周日零点执行
0 0 1 1 *每年 1 月 1 日零点执行
30 2 * * *每天凌晨 2:30 执行
0 */6 * * *每 6 小时执行一次
0 9,18 * * *每天 9 点和 18 点执行
0 0 * * 1每周一零点执行
0 0 L * *每月最后一天零点执行
0 0 1W * *每月 1 号最近工作日零点执行
0 0 * * 1#2每月第 2 个周一零点执行
0 0 LW * *每月最后一个工作日零点执行

常见问题

五位和七位 Cron 表达式有什么区别?
五位格式:分 时 日 月 周(标准 Linux crontab)。七位格式在前后各加一位:秒 分 时 日 月 周 年(Spring、Quartz 等框架使用)。本工具支持两种格式。
Cron 表达式中的特殊字符有哪些?
*(任意值)、?(不指定,仅日和周)、-(范围,如 1-5)、,(枚举,如 1,3,5)、/(步长,如 */5 表示每 5 个单位)、L(最后,如月中最后一天)、W(最近工作日)。
Cron 表达式常见的错误有哪些?
常见错误包括:日和周同时指定了非 ? 的值(互斥)、月份或星期写错(星期 0-7 中 0 和 7 都代表周日)、步长 / 前缺省起始值。本工具会自动检测并提示错误。

相关工具