Cron 表达式解析器
解析 Cron 表达式,预览执行时间,可视化构建
每秒
每秒
范围
从到
间隔
从开始,每隔
秒
指定
输入有效的 Cron 表达式以查看执行时间
Cron 语法说明
Cron 表达式由 5 ~ 7 个字段组成,以空格分隔。本工具支持标准 5 字段格式(Unix Cron)以及带秒和年的扩展格式(Quartz Cron)。
当秒字段为 *时,表达式自动省略秒字段(显示 5 或 6 字段);当年字段为 *时,自动省略年字段,保持表达式简洁。
字段定义
| 字段 | 必填 | 允许值 | 特殊字符 | 说明 |
|---|---|---|---|---|
| 秒 | 可选 | 0 ~ 59 | — | 省略时默认为 * |
| 分 | 必填 | 0 ~ 59 | — | 每分钟的第几分执行 |
| 时 | 必填 | 0 ~ 23 | — | 24 小时制 |
| 日 | 必填 | 1 ~ 31 | LWLW | 每月第几天 |
| 月 | 必填 | 1 ~ 12 | — | 月份,1 = 一月 |
| 周 | 必填 | 0 ~ 6 | L# | 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。
可用范围:L、W、LW、L-N 仅日字段; L、# 仅周字段。
注意事项
- 日字段与周字段的关系:两者是"与"的关系(同时满足)。例如
0 0 1 * 1表示"每月 1 日且是周一"才执行,而不是"每月 1 日或周一"。 - 周字段的 0 与 7:在标准 Cron 中,0 和 7 都表示周日。本工具统一使用 0 表示周日。
- 月天数不一致:例如指定每月 31 日执行,则 2 月、4 月、6 月等只有 30 天的月份不会触发。
- 步长起始值:
1/5与0/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 都代表周日)、步长 / 前缺省起始值。本工具会自动检测并提示错误。