Cron 表达式生成器

按目标调度器原生字段逐项配置,支持每值、周期、间隔和指定值;默认生成 Quartz 7 段表达式,也支持 Spring 6 段与 Linux 5 段

返回 在线生成透明ICO图标 您还可以使用 Windows CMD命令大全 高精度北京时间在线校准 桌面快捷方式生成器 图片Base64转换工具

粘贴表达式 → 反向解析校验

常用示例(点击直接载入)

Cron 字段说明

字段取值范围常用符号说明
0-59, - * /每分钟内的触发秒数,如 0/5 表示每 5 秒一次。仅 Quartz / Spring 支持。
0-59, - * /每小时内的触发分钟,如 0/10 表示每 10 分钟一次。
0-23, - * /一天中的触发小时,如 9-18 表示 9 点到 18 点的整点。
1-31, - * / ? L W每月第几天。L 为最后一天,LW/nW 为最近工作日。Quartz 中常与周字段互斥使用 ?。
1-12, - * /指定月份,也可写 JAN-DEC 英文缩写(解析端兼容)。
Quartz/Spring 1-7
Linux 0-7
, - * / ? L #星期几。Quartz / Spring 中 1=周日、7=周六;Linux 中 0 和 7 都表示周日。5#3 表示第三个周四,5L 表示最后一个周四。
1970-2099, - * /可选字段,仅 Quartz 完整支持,长期运行的任务保持 * 即可。

什么是 Cron 表达式?

三种方言一次搞定

普通 Linux Crontab 是 5 位字段(分 时 日 月 周);Spring 与 Quartz 在最前面增加“秒”,Quartz 还可选增加“年份”。切换调度器后,本工具会自动使用对应的字段数量、星期编号和特殊字符规则。

四种典型配置方式

每个字段都可以按需选择:每值(*)、周期(从 A 到 B)、间隔(从 A 开始每 B 执行)和指定值(精确勾选具体时间点),覆盖“每天几点跑”“每隔几分钟跑”“每周几跑”“每月最后一天跑”等常见需求。

中文解释 + 时间预览

右侧固定展示当前表达式的逐字段中文解释和未来 5 次执行时间,帮助你在上线前确认“到底什么时候触发”,避免时区、星期编号和日/周冲突带来的隐蔽问题。

适合哪些场景

Java Spring 定时任务 @Scheduled、Quartz Scheduler、XXL-JOB 等任务平台、服务器 Crontab 脚本、数据同步与补偿、报表归档等自动化调度的规则编写与排查。

常见 Cron 表达式示例

每 5 秒执行

0/5 * * * * ? *

适合短周期轮询和联调测试,生产环境慎用,注意任务堆积。

每 10 分钟执行

0 0/10 * * * ? *

缓存刷新、消息补偿、轻量数据同步等周期任务的经典写法。

每天凌晨执行

0 0 0 * * ? *

日报生成、数据归档、离线统计等低峰期批处理任务。

工作日 10:15 执行

0 15 10 ? * 2-6 *

只在周一到周五触发的办公流程与业务巡检(Quartz 周编号 2=周一…6=周五)。

每月最后一天 10:15

0 15 10 L * ? *

月度结算、账单生成、月末汇总场景,L 表示当月最后一天。

每月第 2 个周一 09:00

0 0 9 ? * 2#2 *

# 用于 Quartz 的“第 n 个星期几”,常见于发版窗口和维护窗口。

Cron 表达式常见问题

Linux Crontab 和 Quartz Cron 有什么区别?

Linux Crontab 使用 5 位字段(分 时 日 月 周),不支持秒、年份以及 ? L W # 等特殊符号;Quartz Cron 在最前面增加秒字段并可选年份字段,共 6 或 7 段,同时支持 ? 不指定写法以及 L、LW、nW、#、nL 等高级符号。本工具切换调度器后会自动套用对应的字段数量与符号规则。

Cron 表达式里的 * 和 ? 有什么区别?

* 表示该字段的任意值都匹配;? 表示不指定。在 Quartz 中,“日”和“周”两个字段要求其中一个使用 ?,否则同一个日期会被双重约束造成语义冲突。本页配置时会自动检测冲突并把另一个字段降级为 ?。

为什么需要查看最近执行时间?

表达式看起来正确并不等于实际触发符合预期。通过预览未来几次执行时间,能快速发现时区理解偏差、星期编号错位(比如把周一当成 1)、日/周字段冲突、间隔步长理解错误等问题,比只盯着表达式直观得多。

这个工具会把我的 Cron 表达式上传到服务器吗?

不会。生成、解析、校验、中文解释和执行时间推算全部在浏览器本地完成,无需登录,也不依赖后端接口,可放心用于内部系统任务规则的编写与核对。