在线工具箱
Cron 表达式

Cron 表达式生成器

可视化点选生成 5 段 / 6 段 Cron 表达式,实时中文描述与未来执行时间预览。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
Cron定时任务运维
模式

常用预设(点击一键填充)
Cron 表达式

逐步选择器

每个字段可分别选择任意值 *、具体值、区间 a-b、步长*/n 或列表 a,b,c。

含义说明

正在生成…

未来 5 次执行时间

按浏览器本地时区计算。

    crontab 行

    直接复制到 Linux crontab 中使用(仅 5 段模式)。

    使用说明

    常见 cron 陷阱

    工作原理

    1. 1先选择模式:5 段为「分 时 日 月 周」(Linux crontab / vixie),6 段为「秒 分 时 日 月 周」(Quartz,用 ? 表示不指定)。
    2. 2工具按字段顺序为秒 / 分 / 时 / 日 / 月 / 周各渲染一行取值方式选择器,可分别使用任意值、具体值、区间、步长或列表;各字段片段拼接为完整表达式,连续值会自动压缩(如 1,2,3 → 1-3)。
    3. 36 段(Quartz)模式下工具会自动满足「日 / 周」中至少有一个为 ? 的互斥约束,避免生成无法被解析的非法表达式。
    4. 4计算执行时间时,工具以「分」(6 段为「秒」)为最小粒度在日历上迭代匹配月 / 日 / 时 / 分 / 秒;5 段模式下「日」与「周」同时被指定时按 vixie「或」语义,6 段按「与」语义。
    5. 5解析模式逐字段校验取值合法性(支持 0-7 周、JAN-DEC / SUN-SAT 别名、L / W / # 等语法),定位到具体出错字段,并对「2 月 30 日」这类永不触发的组合给出警告。

    常见问题

    5 段和 6 段 Cron 有什么区别?该选哪个?

    5 段是「分 时 日 月 周」,即 Linux crontab / vixie cron 的经典写法;6 段在开头多一个「秒」,属于 Quartz 风格,常用于 Java 生态(Spring @Scheduled、Quartz 调度器)。写 Linux crontab 用 5 段,写 Java 定时任务用 6 段,两者不能混用。

    为什么 6 段模式下「日」和「周」必须有一个是 ? ?

    这是 Quartz 的硬性约束:Quartz 中「日」与「周」不能同时被指定(否则语义不明确),因此两者中必须有且仅有一个用 ? 表示「不指定」。本工具在 6 段模式下会自动补 ? 并给出提示,解析时也会对违反该约束的表达式报错。

    「日」和「周」同时被指定时,按什么语义执行?

    标准 cron(vixie)中「日」与「周」同时被指定(都非 *)时为「或」语义:满足任一条件即触发,例如 0 0 1 * 1 表示「每月 1 日或每周一」的 0 点。Quartz(6 段)为「与」语义,但要求两者中有一个为 ?。本工具按模式区分处理,并在描述中注明。

    */n 是从哪里开始步进的?

    */n 从该字段的最小值开始步进,而不是从当前时间开始。例如「分」字段的最小值是 0,*/5 表示 0、5、10…55 分;「日」字段最小值是 1,*/2 表示 1、3、5…日。若想以某个值作为起点,可用 a/n 或 a-b/n 写法。

    未来执行时间为什么只显示 5 次?表达式永不触发会怎样?

    未来执行时间仅在本地做预览,因此默认展示最近 5 次;工具最多向前搜索 4 年并设有迭代上限。若表达式永不触发(如「2 月 30 日」)或触发间隔过长,会给出「该表达式永不触发 / 未找到执行时间」的警告而不会卡死页面。

    数据会上传到服务器吗?

    不会。全部生成、解析与执行时间计算都在你的浏览器本地完成,不发起任何网络请求,断网也能完整使用;未使用任何需要密钥的第三方服务。

    更多在线工具