什么是Cron 表达式解析器?
Cron是Unix/Linux定时任务、CI/CD流水线、Kubernetes CronJobs以及无数任务调度器所使用的标准调度语法。一个cron表达式将整个重复调度计划压缩进五个简洁的字段中,功能强大但也以难以一眼看懂而著称——"0 */4 * * 1-5"究竟是工作日每4小时执行一次,还是完全不同的含义?
本解析器逐字段分解cron表达式,并将其翻译为通俗易懂的自然语言描述,以便您在部署前验证调度计划是否正确,或快速理解他人编写的调度逻辑,而无需反复查阅cron语法表。
何时使用此计算器
- 在部署计划任务或 CI/CD 流水线之前验证 cron 调度
- 调试为什么定时任务在意外的时间运行(或未运行)
- 审查同事编写的 Kubernetes CronJob 或 GitHub Actions 调度
- 在系统管理或 DevOps 课程中学习 cron 语法
- 在服务器迁移期间审核现有的 crontab 条目
- 设计结合多个时间约束的复杂调度模式
步骤:
- 在输入框中粘贴或输入一个 5 字段的 cron 表达式。
- 查看每个字段单独拆解出来及其含义。
- 阅读整个调度的通俗语言翻译。
- 尝试预设按钮,快速获取“每小时”或“工作日上午 9 点”等常用调度。
公式
┌───────────── 分钟 (0-59)
│ ┌───────────── 小时 (0-23)
│ │ ┌───────────── 月中的日 (1-31)
│ │ │ ┌───────────── 月份 (1-12)
│ │ │ │ ┌───────────── 周中的日 (0-6,周日=0)
│ │ │ │ │
* * * * *
使用场景
- 在部署计划任务或 CI/CD 流水线之前验证 cron 调度
- 理解同事编写的Kubernetes CronJob或无服务器定时函数
- 调试为什么定时任务在意外的时间运行(或未运行)
- 在系统管理员或 DevOps 课程中学习 cron 语法
- 在服务器迁移期间审核现有的 crontab 条目
主要优势
- 即时将晦涩的 cron 语法翻译成通俗易懂的语言
- 逐一拆解 5 个字段,条理清晰
- 一键预设最常用的调度模式
- 无需注册,完全在浏览器中运行
专业提示
- 如有疑问,先用一个非常近的未来时间进行测试,确认调度按预期触发
- 尽可能使用区间(1-5)而不是用逗号列出每个值,以提高可读性
- 仔细检查服务器或调度器的时区设置——这是 cron “时间错误”最常见的来源
- 对于比简单的每日/每周调度更复杂的情况,先写出通俗语言的描述,并在部署前与你的预期进行比对
需要避免的常见错误
- 忘记月中日和周中日之间是“或”关系,而不是“且”关系
- 将从 0 开始计数的周中日(0=星期日)与其他系统中从 1 开始计数的惯例混淆
- 误以为月中日字段中的 */7 表示“每 7 天”——实际上它表示第 1、8、15、22、29 天,并在每月重新开始
- 忘记大多数 cron 实现是按服务器本地时区运行的,而不是 UTC 或用户所在时区
关键术语解释
- Cron:类 Unix 操作系统中使用的基于时间的任务调度器
- Crontab:用于定义一组定时任务的文件或命令
- 步长值(Step value):"/N" 语法,表示从字段最小值开始“每 N 个单位”
- CronJob:Kubernetes中用于运行cron调度任务的原生资源
相关概念
- 时间差计算器: 计算两个日期和时间之间的时长
- 倒计日计算器: 计算距离特定日期的天数
- Unix 时间戳转换器: 在 Unix 时间戳和日期之间转换
- 时区重叠计算器: 查找不同时区之间的工作时间重叠
- JSON 格式化工具: 格式化和验证 JSON 数据
示例
表达式 "0 9 * * 1-5" 拆解为:分钟=0,小时=9,每月的每一天,每个月,周一到周五——意味着“周一至周五的 09:00”。
解读您的结果
解析器将 5 字段的 cron 表达式拆分为单独的组件,并将每个组件翻译为通俗易懂的中文。五个字段是:分钟(0-59)、小时(0-23)、月中的日(1-31)、月份(1-12)和星期(0-6,其中 0 是星期日)。当五个字段都与当前时间匹配时,任务就会运行——这是字段之间的与(AND)逻辑。
特别注意月中日与星期之间的交互,它使用或(OR)逻辑(而非与)。安排在 15 日且星期 5 的任务将在每月 15 日和每个星期五运行——而不仅仅是落在 15 日的星期五。

