Cron表达式生成器|可视化创建与预览
可视化创建 cron 表达式,获取中文解释,预览接下来 10 次执行时间。免费使用,无需注册,完全在浏览器中运行。
Cron Generator 是什么?
Cron Generator 是一款免费的在线工具,用于构建、验证和理解 cron 表达式——Unix cron 守护进程、CI/CD 平台、云调度器以及众多自动化系统所使用的五字段调度语法。您可以通过下拉菜单可视化地构建调度计划、直接输入表达式,或粘贴现有表达式以立即获得易读的说明。
该工具解决两个不同的问题。从头编写新的调度计划容易出错,因为您需要记住准确的字段顺序和允许的特殊字符。继承 0 9 1-5 这样的现有表达式同样令人困惑,因为您不确定它是每九分钟触发一次还是在工作日上午 9 点触发。Cron Generator 兼顾两个方向:从构建到表达式,以及从表达式到中文说明。所有内容均在客户端运行,因此您可以放心地将其用于不应离开网络的内部调度配置。
主要功能
- 可视化 cron 表达式构建器 — 为 Minute、Hour、Day of Month、Month 和 Day of Week 提供五个下拉选择器,无需记忆语法即可构建调度计划。每个字段还提供自定义文本输入,用于预设列表以外的值。
- 易读的说明 —
cronstrue库可立即将任何有效表达式翻译成中文。Builder 标签显示 24 小时制说明;Human Readable 标签以大而突出的显示方式展示 12 小时制说明。 - 预览下次执行时间 — Builder 标签显示接下来 5 次运行时间。Human Readable 标签显示接下来 10 次运行时间,并以主题色高亮显示最近一次执行。
- 验证 cron 表达式 — 当
cron-parser无法解析表达式时,输入字段变为红色,说明区域切换为醒目的错误背景。有效表达式显示中性的次要背景。 - 10 个内置预设 — 点击任意预设按钮加载常用调度:每分钟、每小时、每天午夜、每天上午 9 点、每周日午夜、每月 1 日、1 月 1 日、工作日上午 9 点、每 5 分钟、每 2 小时。
- 复制表达式到剪贴板 — 一键复制当前表达式字符串,并将其记录到历史面板。
- 批量模式 — 粘贴多个 cron 表达式(每行一个),一次性解释所有表达式并导出结果。
- 可分享的 URL — 表达式编码到 URL 中,您可以复制地址栏将特定调度计划分享给团队成员。
如何使用 Cron Generator
第一步:输入或构建您的表达式
表达式输入字段始终显示在工具顶部,默认以 0 0 *(每天午夜)开始。您可以:
- 直接输入 — 将字段编辑为任意五字段 cron 表达式。工具逐字符解析,实时更新下拉菜单、说明和下次运行预览。
- 使用 Builder — 点击表达式输入框下方的"Builder"标签,显示 Minute、Hour、Day of Month、Month 和 Day of Week 五个下拉菜单。从任意下拉菜单选择值后,表达式字段会自动更新。
- 选择预设 — 点击 10 个预设按钮之一(Every Minute、Every Hour 等),一键加载对应表达式。
第二步:查看说明
表达式输入字段正下方的状态面板显示中文含义。对于表达式 0 9 1-5,工具以 24 小时制显示"周一至周五,09:00"。对于有效表达式,面板使用绿色调的次要背景;当表达式无法解析时,使用红色错误背景。
第三步:查看下次执行时间
在 Builder 标签中,"Next Executions"面板使用本地 toLocaleString() 格式列出接下来 5 个调度时间。切换到 Human Readable 标签可查看接下来 10 次运行时间。第一条(最近)记录以主题紫色的"Next"标记高亮显示,方便在部署前确认调度计划正确。
第四步:为高级表达式使用自定义值
Minute 和 Hour 字段各在下拉菜单下方有一个标记为"Custom"的纯文本输入框。在此输入任何有效的 cron 字段值——例如每季钟 0,15,30,45,或 8 到 17 点的 8-17。自定义值优先于下拉菜单选择,并立即更新表达式。
第五步:复制并使用表达式
点击操作栏中的"Copy"将表达式复制到剪贴板。表达式已准备好粘贴到 crontab 文件、GitHub Actions schedule 触发器、AWS EventBridge 规则或任何其他 cron 兼容字段。
工作日早报任务的示例表达式:
0 8 * * 1-5
说明:"周一至周五,08:00"
下次执行(从周一起):
- 周一,2026年3月3日,08:00:00
- 周二,2026年3月4日,08:00:00
- 周三,2026年3月5日,08:00:00
实用示例
调度数据库备份
后端工程师需要一个每晚凌晨 2 点运行的任务。他从 Hour 下拉菜单选择"At midnight",将其改为自定义值 2,保持 Day of Month 和 Month 为 ,保持 Day of Week 为 。表达式变为 0 2 *。说明确认"02:00",下次执行列表显示 5 个连续夜晚的 02:00:00。工程师复制表达式并粘贴到 crontab 中。
设置季度报告
数据分析师需要在每个季度第一天(1 月、4 月、7 月、10 月)上午 6 点运行任务。他直接在表达式字段中输入 0 6 1 /3 。工具确认"每 3 个月的第 1 天,06:00",并显示接下来四个季度日期。分析师与团队共享 URL,让所有人都能验证调度计划。
审计继承的调度计划
开发人员继承了一个在 YAML 文件中定义了五个 cron 任务的微服务。他切换到批量模式,粘贴所有五个表达式(每行一个),点击"Process All"。结果表格显示每个表达式及其中文说明。表达式 /10 9-17 * 1-5 一目了然:"周一至周五,09:00 至 17:00,每 10 分钟一次。"
提示与最佳实践
使用 Human Readable 标签确认意图,而不仅仅是语法。 表达式在语法上可能有效,但在语义上可能是错误的——例如,0 0 31 在每月 31 日触发,这意味着它永远不会在 2 月、4 月、6 月、9 月或 11 月运行。下次运行预览使这一缺口显而易见。
特殊字符 L 表示"该月最后一天"。 Day of Month 下拉菜单包含"Last Day"选项,生成 L 值。这由 cron-parser 支持,适用于月末账单或报告任务。部署前请确认目标 cron 实现也支持 L。
Minute 和 Hour 自定义字段接受步长表达式。 在自定义 Minute 字段中输入 */5 可每 5 分钟运行一次。在自定义 Hour 字段中输入 8-17 可将任务限制在工作时间内。这些值在下拉菜单中不可用,但工具能正确验证它们。
Day of Week 的 0 和 7 都表示周日。 Builder 标签中的语法参考表记录 Day of Week 接受 0-6,但许多实现也接受 7 作为周日。使用 0 以保持一致。
共享 URL 对表达式进行编码。 加载共享 URL 时,一条提示通知会确认表达式已从 URL 加载。这对代码审查评论很有用,您可以让团队成员以交互方式验证调度计划。
常见问题与故障排除
表达式字段出现红色边框。 cron-parser 库无法解析该值。常见原因包括:少于或多于五个以空格分隔的字段、超出范围的值(如月份 13 或分钟 60)、或不支持的特殊字符。说明面板也会显示"Invalid expression"。
批量模式中出现"Invalid cron expression"。 批量模式中每行独立验证。解析失败的行在 Output 列中以红色显示错误消息。修正每个表达式后重新运行。
下拉菜单未反映手动输入的表达式。 解析器仅在输入值与预设下拉选项之一完全匹配(、0、15 等)时才更新下拉菜单。如果输入自定义值(如 /5),下拉菜单保持原来的选择——但表达式字段本身和说明始终是权威的真实来源。
下次执行时间以本地时间显示。 cron-parser 库使用客户端的系统时区。如果您在 UTC 中调度任务,请验证本地偏移量。Human Readable 标签将时间标注为"UTC local time"以提醒您注意此差异。
清除后重置为 。 Clear 按钮将所有五个字段重置为 (每分钟),而不是恢复到初始的 0 0 *。使用"Every day at midnight"预设可快速恢复每日默认值。
隐私与安全
所有 cron 解析和说明均在您的浏览器中使用 cronstrue 和 cron-parser JavaScript 库完成。您输入的任何表达式都不会发送到任何服务器。初始页面加载后,工具完全离线运行。这使其可安全用于内部调度配置、嵌入表达式中的专有任务名称以及其他敏感的自动化详细信息。
常见问题解答
Cron Generator 是免费的吗? 是的,完全免费,无使用限制。构建、解释或复制 cron 表达式无需账户或付款。
它可以离线使用吗? 页面加载后,所有功能——构建、解释、预览下次运行——均可在无网络连接的情况下使用。表达式从不发送到服务器。
我的数据安全吗? 您的表达式在 JavaScript 中本地处理,从不传输到 Glyph Widgets 服务器。可安全用于内部任务配置和专有系统调度计划。
支持哪种 cron 语法? 该工具使用标准的五字段 Unix cron 语法:Minute (0-59)、Hour (0-23)、Day of Month (1-31)、Month (1-12)、Day of Week (0-6)。支持的特殊字符包括 *(通配符)、,(列表)、-(范围)、/(步长)、L(最后)用于 Day of Month,以及 # 用于 Day of Week。不支持带有秒字段的六字段表达式(某些平台如 Quartz 使用)。
Builder 标签和 Human Readable 标签有什么区别? Builder 标签提供可视化下拉菜单界面、预设按钮、接下来 5 次运行时间和语法参考表。Human Readable 标签专注于说明:以突出方式显示中文说明、显示各字段为通配符或特定值的字段分解网格,以及接下来 10 次运行时间。
可以一次解释多个表达式吗? 可以。使用工具顶部的按钮开启批量模式。每行粘贴一个 cron 表达式,点击"Process All",查看包含每个表达式及其中文说明的表格。使用"Copy All Results"导出完整表格。
分钟字段中的 /5 是什么意思? / 字符表示"步长"。/5 表示"从 0 开始每 5 个单位",因此在分钟字段中,它在 0、5、10、15、20、25、30、35、40、45、50 和 55 分钟触发——每小时 12 次。
可以通过链接分享特定的 cron 表达式吗? 可以。工具将当前表达式编码到 URL 查询字符串中。复制地址栏并分享。收件人打开链接时,提示通知会确认表达式已从共享 URL 加载。
为什么我每月 31 日的任务不是每月都运行? 并非每个月都有 31 天。0 0 31 的调度计划仅在 1 月、3 月、5 月、7 月、8 月、10 月和 12 月触发。使用下次运行预览确认调度中的缺口。如果您希望无论月份长短都在月末运行,请考虑使用 0 0 L (每月最后一天)。
0 9 1-5 用中文如何解释? "周一至周五,09:00。"Day of Week 字段中的 1-5 范围选择周一(1)到周五(5)。
相关工具
Unix Timestamp — 在 Unix 时间戳和人类可读日期之间转换,以验证您的计划任务上次运行的时间。
Date Calculator — 在规划周期性 cron 任务的运行频率时,计算两个日期之间的间隔。
World Clock — 查看多个时区的当前时间,以便跨地区正确调度 cron 任务。
立即试用 Cron Generator:Cron Generator