功能简介
Cron 表达式解析工具用自然语言解释 Cron 计划,并列出它接下来的运行时间。Cron 语法很紧凑,也很容易写错:0 9 * * 1-5 到底是工作日早上 9 点,还是 9 点那一小时里的每一分钟?部署之前把表达式粘贴到这里,就能确切知道它什么时候运行。
五个字段还会分别展开成它允许的具体取值,范围和步长写错一眼就能看出来。
使用方法
- 在输入框里输入 Cron 表达式,也可以点「示例」。
- 查看含义说明和字段表。如果有错,提示会指出出错的字段和列,比如小时写成了 24。
- 选择用「本地」时间还是 UTC 显示接下来的运行时间,以及要显示几次。
Cron 语法
Cron 表达式由空格分隔的五个字段组成:
┌───────────── 分钟(0–59)
│ ┌─────────── 小时(0–23)
│ │ ┌───────── 日(1–31)
│ │ │ ┌─────── 月(1–12 或 JAN–DEC)
│ │ │ │ ┌───── 星期(0–7 或 SUN–SAT,0 和 7 都是星期日)
│ │ │ │ │
* * * * *
| 符号 | 含义 | 示例 |
|---|---|---|
* | 任意值 | 小时字段写 * 表示每小时 |
, | 列表 | 1,15 表示 1 日和 15 日 |
- | 范围 | MON-FRI 表示周一到周五 |
/ | 步长 | */15 表示每 15 分钟 |
也支持快捷写法:@hourly、@daily(或 @midnight)、@weekly、@monthly 和 @yearly(或 @annually)。
示例
| 表达式 | 运行时间 |
|---|---|
*/5 * * * * | 每 5 分钟 |
0 * * * * | 每小时整点 |
0 9 * * 1-5 | 工作日 09:00 |
30 2 1 * * | 每月 1 日 02:30 |
0 0 * * 0 | 每周日零点 |
常见问题
› 这个工具用的是哪种 Cron 格式?
标准的五字段 Unix(Vixie)Cron 格式,crontab、Kubernetes CronJob、GitHub Actions 和大多数调度器都用这种格式。不支持带秒的六字段格式(Quartz、Spring)。
› 同时设置了「日」和「星期」会怎样?
标准 Cron 只要其中一个匹配就会运行。比如 0 0 1,15 * 5 会在每月 1 日、15 日以及每个星期五运行。
› 为什么我服务器上的运行时间不一样?
Cron 使用运行它的机器或服务所在的时区。GitHub Actions 和大多数云调度器使用 UTC,把「时区」切到 UTC 就能看到它们实际的运行时间。
› 可以用 MON、JAN 这样的名称吗?
可以。月份支持 JAN–DEC,星期支持 SUN–SAT,大小写都行。星期日可以写成 0 或 7。