Cron 表达式解析

本地处理 · 数据不上传

解析 cron 表达式,逐字段说明含义,并预览接下来 5 次执行时间。

示例
  • 分钟0
  • 小时9
  • 月内日每个
  • 月份每个
  • 星期几1
描述At 09:00 on Monday

Cron 表达式解析是什么?

Cron 表达式解析工具能接收一个标准的五字段 cron 字符串,并准确说明它的含义:逐字段拆解、用通俗语言描述这个计划,并预览任务接下来 5 次触发的时间。

Cron 是类 Unix 系统上基于时间的任务调度器,它的语法早已成为事实标准,应用范围远超 crontab——CI 流水线、Kubernetes CronJob、Serverless 调度器以及无数后台任务都在复用它。一个 cron 表达式由 5 个用空白分隔的字段组成,从左到右依次是:分钟(0–59)、小时(0–23)、月内日(1–31)、月份(1–12)和星期几(0–6,其中 0 表示星期日,7 也被接受为星期日)。例如 “0 9 * * 1” 表示每周一上午九点整。

每个字段都支持一套小巧但强大的语法。星号 “*” 表示所有取值;逗号构成列表,“1,15,30” 表示三个特定值;连字符构成范围,“1-5” 表示周一到周五;斜杠表示步进:分钟字段里的 “*/15” 表示每隔 15 分钟(0、15、30、45),也可以把范围和步进组合起来,例如 “0-30/10”。本工具会按各字段允许的取值范围逐一校验,任何越界或无法解析的内容都会被拒绝,让你在上线前就发现笔误。

除了解释字段,解析器还会算出接下来 5 次执行时间,帮你确认计划是否如预期工作。这些预览时间由你的浏览器以 UTC 计算,从当前时刻开始——不会发送到任何服务器,你粘贴的表达式也不会离开你的设备。请注意,真实的 cron 守护进程运行在服务器的本地时区,如果你的机器不是 UTC,实际触发时间可能存在偏移,请把预览结果当作 UTC 参考。还有一个符合标准 cron 行为的重要细节:当月内日和星期几两个字段都被限制时,只要其中之一匹配就会触发(这是“或”的关系),这一点常常引起困惑,值得牢记。

常见问题

五个 cron 字段的顺序是怎样的?

从左到右依次是:分钟、小时、月内日、月份、星期几。所以 “0 9 * * 1” 读作:第 0 分钟、第 9 小时、任意月内日、任意月份、星期几为 1(周一)。

*/5 是什么意思?

斜杠表示步进。在分钟字段里,*/5 表示从 0 开始每隔 5 分钟,即 0、5、10、15……一直到 55。也可以在范围上步进,例如 0-30/10 得到 0、10、20、30。

月内日和星期几如何共同作用?

标准 cron 在两个字段都被限制时取“或”:只要月内日或星期几任一匹配,任务就会触发。如果只限制了其中一个(另一个是 *),则只按被限制的那个生效。

显示的执行时间用的是什么时区?

预览的下次执行时间按 UTC 计算。真实的 cron 守护进程通常运行在主机的本地时区,因此如果你的服务器不是 UTC,实际时间可能相差你的 UTC 偏移量。

我的 cron 表达式会被上传吗?

不会。解析、校验和下次执行预览全部在你的浏览器本地完成,表达式不会离开你的设备。