Cron 表达式解析

解析 Cron 表达式含义并推算最近几次执行时间。

每月,每天,每星期,每小时,每 5 分钟(第0分、第5分、第10分、第15分、第20分、第25分、第30分、第35分、第40分、第45分、第50分、第55分)时执行

  • 2026-09-14 07:15 周一
  • 2026-09-14 07:20 周一
  • 2026-09-14 07:25 周一
  • 2026-09-14 07:30 周一
  • 2026-09-14 07:35 周一

什么是Cron 表达式解析?

Cron 表达式解析工具用来把一段 Cron 定时表达式(如 0 30 9 * * ? 或 */5 * * * *)翻译成人能看懂的自然语言描述,并计算出接下来几次任务会在具体什么时间点执行。 Cron 表达式由若干个用空格分隔的字段组成(秒/分/时/日/月/周,字段数因系统而异,Linux crontab 是 5 位,Quartz 是 6 或 7 位),每个字段可以是具体数字、通配符 *、范围 1-5、间隔 */5、列表 1,3,5 等写法组合,规则灵活但也容易看错或写错,这个工具帮你快速验证表达式到底代表什么时间。

为什么使用Cron 表达式解析?

典型场景:写定时任务(crontab、Kubernetes CronJob、Quartz Job、Jenkins 定时构建)时,想确认自己写的表达式到底是每天 9 点半还是每 9 分 30 秒;排查一个已有的定时任务为什么没有按预期触发,先解析一下表达式含义;给同事写文档时需要说明某个任务的执行频率。 和手动心算的区别在于:工具会直接列出未来几次实际执行的时间点,这对于每月最后一个工作日、每周一到周五中午这类稍复杂的表达式尤其有用,比自己数格子容易出错的方式可靠得多。

使用示例

每 5 分钟执行一次

输入 */5 * * * *,解析结果为每隔 5 分钟执行一次,并列出接下来几次执行时间,如 12:00、12:05、12:10……

每天固定时间执行

输入 0 30 9 * * ?(Quartz 6 位格式),解析为每天 9 点 30 分 0 秒执行一次,并给出未来几天对应日期的具体执行时间点。

工作日执行

输入 0 0 12 ? * MON-FRI,解析为每周一到周五的中午 12 点执行,接下来的执行时间会自动跳过周六周日。

使用提示

不确定自己环境用的是哪种 Cron 方言时,优先按 5 位标准 crontab 格式验证,如果报错或字段对不上,再切换到 Quartz 6/7 位格式重新解析。

常见问题

字段顺序是什么?支持哪些语法?
标准 5 段:分 时 日 月 周。每个字段支持 *(任意)、*/n(步长)、a-b(范围)、a,b,c(列表),以及组合如 1-10/2。星期用 0-7 表示,0 和 7 都代表周日。
日期字段(日、周)同时限定时怎么算?
遵循标准 crontab 行为:当“日”和“星期”都不是 * 时,两者是“或”的关系,只要满足其一即可;若其中一个是 *,则只按另一个字段判断。
数据会上传吗?
不会。表达式解析与执行时间推算全部在浏览器本地用 JavaScript 完成。
5 位和 6 位 Cron 表达式有什么区别?
标准 Linux crontab 用 5 个字段(分 时 日 月 周),不含秒;Quartz(Java 生态常用)用 6 或 7 个字段,最前面多一个秒字段,最后可选年字段,两者字段含义不完全通用,解析前需要先确认自己用的是哪种格式。
表达式写错了会怎样?
工具会尝试校验表达式格式是否合法,字段数量或取值范围不对会提示错误,但无法判断你的业务逻辑是否符合预期,建议解析后核对给出的具体执行时间是否符合本意。
时区怎么处理?
计算出的执行时间基于浏览器本地时区,如果定时任务运行在服务器上且时区与本地不同(比如服务器是 UTC,本地是 UTC+8),实际触发时间需要按服务器时区折算。
日和周字段同时指定会怎样?
大多数 Cron 实现(包括标准 crontab)中,日与周字段是或的关系,只要满足其中一个条件就会触发,这也是 Cron 表达式里最容易被误解的一点。

相关工具

相关教程

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。