ToolConvoyToolConvoyv2.6
DEV

Cron 表达式翻译器 — 把 cron 表达式翻译成自然语言

把 cron 表达式翻译成自然语言。按你的本地时区显示接下来 5 次运行时间。支持标准 cron 和 Quartz 语法。

● 本地运行 · 在您的标签页中生成页面加载以来工具发出的网络请求:0 次

Cron to Human

Translate cron expressions to plain English. Works entirely in your browser — no uploads.

cron 表达式就是那种「大家都从别处抄、没人会凭记忆写」的格式。五个字段(分、时、日、月、周)第一次输入很简单,但一旦第二个字段需要步长值,或者「周」字段需要范围,查表就比推理更快。本工具就是干这事的 —— 粘贴表达式,读出中文解释,把「下次运行」时间复制到你本来就要放的地方去。

大多数人第一次用 cron 解释器时,最意外的地方是时区。cron 表达式里没有时区 —— 它只是 5 个数字。运行作业的守护进程有一个时区,解释器有一个时区(你浏览器的),而它们通常不一样。在开发者本地时间读作「工作日 9 点」的表达式,可能在另一国的服务器上以 UTC 17:00 触发,也可能在开发者的笔记本上以凌晨 2 点触发。本工具的「下次运行」列表按你浏览器的时区计算;如果实际作业跑在服务器上,那时间和服务器时钟对不上。

表达式翻译完之后,通常的下一步是判断这个调度本身合不合适。如果任务本意是每小时跑一次,但因为步长值读错一天只触发 12 次,那就修表达式。如果任务是为生成日报要在 UTC 0 点触发,就在解释前写明你打算用的时区。如果只是一个未来 24 小时内的一次性任务,那根本用不上 cron —— 用 Epoch/Date 转换器拿到一个时间戳,再传给 at 就行。

广告

使用方法

  1. 粘贴一个 cron 表达式

    输入或粘贴一个 5 字段的标准 cron(分 时 日 月 周)或一个 6/7 字段的 Quartz 表达式。边输入边校验,语法错误会就地标出。

  2. 阅读自然语言解析

    每个字段单独一行展示含义。`0 9 * * 1-5` 会被读作「09:00,周一至周五」—— 不必再为范围或步长值费心猜测。

  3. 查看接下来 5 次运行时间

    右侧面板列出接下来 5 次触发的时间,按浏览器本地时区计算。夏令时切换会被正确处理。

常见问题

支持 Quartz 语法(带秒的 6 字段)吗?

支持。粘贴一个 6 字段的 Quartz 表达式(秒在最前面),工具会自动检测格式。也支持带年份的 7 字段 Quartz 表达式。

「下次运行」用的是哪个时区?

你浏览器的本地时区。「下次运行」列表上方会显示 IANA 时区名(例如 'America/New_York')。服务器上的 cron 作业按服务器所在时区触发,不是你的时区。

为什么 `0 9 * * 1-5` 在我的服务器日志里不是工作日 9 点?

你的服务器多半在 UTC。在 'America/Los_Angeles' 的 9 点是 UTC 17:00,而 UTC 9 点在洛杉矶是凌晨 2 点。表达式本身没错 —— 变量是时区。

能解释 @daily、@reboot 这类特殊字符串吗?

可以。输入 `@daily`、`@hourly`、`@weekly`、`@monthly`、`@yearly` 或 `@reboot`,工具会把它们展开成等价的标准 cron 字段。

限制说明

  • 不支持 spring/frost 语法Quartz 的特殊字符 L、W 和 #(最后一天、最近工作日、第 N 个周几)会被识别并解释,但「下次运行」列表不处理 W(最近工作日)—— 会回退为普通周几。
  • 不支持 cron.d 风格的环境变量引用 shell 变量(PATH=、MAILTO=、*)的 cron 表达式不会被解析。只翻译时间字段本身。
  • 夏令时切换会让「下次运行」偏移一小时对于安排在本地时间 02:30 的作业,「下次运行」列表可能跳过夏令时调快当晚的那一次。这与操作系统 cron 守护进程的实际行为一致。

平台说明

macOS
macOS 使用 vixie cron,当「日」与「周」都被设置时按 OR 解释(这个历史上的怪异行为)。本工具的解析与该行为一致。
Linux
大多数 Linux 发行版搭载 cronie 或 vixie cron,都使用标准 5 字段语法。systemd 定时器(.timer 文件)使用另一种格式,本工具不处理。
Windows
Windows 没有原生 cron。最常见的移植是 WSL 的 cron 守护进程,使用 vixie 语法。PowerShell 的计划任务使用不同的 XML 格式。
CLI
驱动本工具的同一套库以 Node.js 包(cronstrue)和 CLI 的形式提供。适合在构建日志或文档里嵌入人类可读的 cron。
Web
完全在客户端运行。适合在把 cron 表达式粘进 crontab 之前,先从 README 或 Stack Overflow 答案里快速校验一下。
广告
广告