Cron 表达式解析器

在线解析 Linux/Unix crontab 使用的五段 Cron 表达式,实时校验字段并计算指定时区下未来 10 次执行时间。

本地解析

表达式与时区

顺序:分钟 小时 日期 月份 星期。支持 *、列表、范围、步长、JAN-DEC、SUN-SAT 和常见宏。

Linux/Unix Cron 五段格式

Cron 表达式是一组描述定时任务执行时间的字段。Linux/Unix crontab 通常使用五段格式,依次为分钟、小时、日期、月份和星期。

* * * * *
│ │ │ │ └─ 星期(0-7,0 和 7 都表示星期日)
│ │ │ └─── 月份(1-12 或 JAN-DEC)
│ │ └───── 日期(1-31)
│ └─────── 小时(0-23)
└───────── 分钟(0-59)
字段允许值示例
分钟0-59*/5 表示每 5 分钟
小时0-239-17 表示 9 时至 17 时
日期1-311,15 表示每月 1 日和 15 日
月份1-12JAN-DECJAN-MAR 表示一月至三月
星期0-7SUN-SATMON-FRI 表示星期一至星期五

Cron 特殊字符与常用表达式

写法含义完整示例
*匹配任意值* * * * * 每分钟执行
,列出多个值0,30 * * * * 每小时的 0 分和 30 分执行
-指定连续范围0 9-17 * * * 每天 9 时至 17 时整点执行
/指定步长*/10 * * * * 每 10 分钟执行
0 9 * * MON-FRI工作日定时星期一至星期五 09:00 执行
0 0 1 * *每月定时每月 1 日 00:00 执行
@daily常用宏等价于 0 0 * * *
@reboot启动宏系统启动时执行,无法预测具体时间

Linux Cron 与 Quartz Cron 有什么区别?

本工具只解析 Linux/Unix 常用的五段 Cron 表达式。Quartz 和 Spring Cron 通常包含秒字段,并支持 ?LW# 等扩展,不能直接与五段表达式混用。

类型字段数秒字段高级字符
Linux/Unix Cron5不支持不支持 ? L W #
Quartz/Spring Cron6 或 7支持支持 ? L W #

使用 Cron 表达式时需要注意什么?

常见问题

Cron 表达式有几段?

Linux/Unix crontab 通常使用五段表达式;Quartz 和 Spring Cron 通常使用六段或七段表达式。使用前应先确认目标调度器的语法。

*/5 * * * * 是什么意思?

它表示每 5 分钟执行一次,执行分钟为每小时的 0、5、10、15,依此类推。

为什么日期和星期同时设置后执行次数变多?

Vixie Cron 对日期和星期使用 OR 语义,任一字段匹配都会执行。例如 0 0 1 * MON 会在每月 1 日以及每个星期一执行。

Cron 表达式包含时区吗?

五段 Cron 表达式不携带时区。应根据部署服务器或调度平台使用的时区检查未来执行时间。

这个工具会上传输入的表达式吗?

不会。解析、校验和未来执行时间计算均在当前浏览器中完成。