Cron 表达式解析器

将 Cron 表达式转换为可读的定时计划,并预览下次执行时间。所有处理在浏览器中完成。

即时解析 下次运行时间 客户端处理

常用预设

字段说明

分钟 小时 日期 月份 星期
0-59 0-23 1-31 1-12 0-6
示例: */5 * * * * = 每分钟 */5

如何使用 Cron 解析器

1

输入表达式

在输入框中输入 Cron 表达式,例如 0 9 * * 1-5 表示工作日每天上午 9 点。

2

查看描述

工具将表达式转换为自然语言描述。

3

预览时间

查看接下来的执行时间,确认计划正确。

什么是Cron?

Cron是类Unix操作系统中的基于时间的任务调度器。用户使用Cron表达式配置计划任务——由空格分隔的五个字段组成的字符串,共同定义调度计划。

特殊语法

标准Cron表达式有5个字段:

分钟 (0-59)

小时 (0-23)

日期 (1-31)

月份 (1-12)

星期 (0-6, 0=周日)

特殊字符

* * — 任意值
, 逗号 (,)
- - — 值范围
/ 斜杠 (/)

常见问题

支持几种 Cron 格式?

支持标准的 5 字段格式(分 时 日 月 周)和 6-7 字段的扩展格式。

显示多少次下次执行时间?

默认显示接下来的 5 次执行时间。

支持非标准宏吗?

支持常见的非标准宏,如 @yearly、@monthly、@weekly、@daily、@hourly 等。

Cron 表达式中的每个字段分别代表什么?

经典的 Vixie cron 格式包含五个字段:分钟(0-59)、小时(0-23)、日(1-31)、月份(1-12 或名称)以及星期(0-7,其中 0 和 7 都表示周日)。部分调度器(如 Quartz、Spring)会在最前面增加第六个秒字段。本解析器会根据字段数量自动判断你使用的是哪种布局。

Cron 中的 *、/、- 和 , 分别是什么意思?

* 表示所有取值;分钟字段中的 */5 表示每 5 分钟一次;1-5 是包含两端取值的范围(例如星期字段中的周一至周五);mon,wed,fri 则逐一列出单个取值。它们可以组合使用:0 9-17/2 * * * 表示每天在 9:00、11:00 等时间点运行,直到 17:00。

如何安排任务每天午夜执行一次,或每 6 小时执行一次?

每天午夜是 0 0 * * *。每 6 小时一次是 0 */6 * * *——小时字段中的 */6 步进会在 00:00、06:00、12:00 和 18:00 触发。每周日凌晨 3 点是 0 3 * * 0。本解析器会计算下次运行时间,方便你在部署之前确认调度计划。

为什么我的 cron 任务在错误的时间触发?

十有八九是时区不匹配:cron 依据服务器的本地时钟进行计算(部分实现支持在 crontab 中使用 CRON_TZ= 或 TZ= 行)。夏令时切换是第二大元凶——安排在春季时钟前跳时间间隙内的任务可能会被跳过,Vixie cron 文档对此有说明。Docker 容器默认使用 UTC,除非你设置了 TZ。

cron 与 systemd 定时器或 Windows 任务计划程序相比有何差异?

cron 是经典的 Unix 调度器:简单、以分钟为精度,没有内置的错失任务补偿机制。systemd 定时器增加了秒级精度、Persistent=true 恢复机制(可补跑设备关机期间错过的任务)以及 journald 日志。Windows 任务计划程序提供图形界面、事件触发器以及错过后尽快补跑的执行语义。Kubernetes CronJob 在云原生技术栈中扮演着同样的角色。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}