Quartz Cron Builder

Cron 表达式生成器

按“秒、分钟、小时、日、月、周、年”逐项配置 Cron 表达式,支持每值、周期、间隔和指定值。 适用于 Quartz、Spring 定时任务、调度平台和后台自动化任务。

当前表达式0 30 5 * * ? *

秒字段

允许符号:, - * /

勾选一个或多个秒值,可精确到具体哪一秒、哪一分钟、哪一天。

0
分钟30
小时5
*
月份*
?
年份*
设计取舍:默认保留字段级生成能力,同时把表达式、中文解释和运行时间固定在右侧,避免生成完还要到页面底部找结果。
Cron Guide

什么是 Cron 表达式?

Cron 表达式是一种描述定时任务执行规则的字符串,常用于服务器脚本、后台任务、消息补偿、数据同步、报表生成和 Spring 定时任务。 普通 Linux Crontab 常见格式是 5 位字段,分别表示分钟、小时、日期、月份和星期;Quartz Cron 通常支持 6 位或 7 位字段,会在最前面增加“秒”,并可选增加“年份”。

这个 Cron 表达式生成器面向 Quartz Cron 场景设计,支持秒、分钟、小时、日、月、周、年逐项配置。你可以通过可视化选项生成表达式,也可以直接粘贴已有表达式进行反解析,查看中文解释和最近运行时间。

如果你正在配置 Java Spring、Quartz Scheduler、XXL-JOB、定时任务平台或自动化调度脚本,这类工具可以降低手写表达式出错的概率,尤其适合检查“每天几点执行”“每隔几分钟执行”“每周几执行”“每月最后一天执行”等规则。

Field Reference

Quartz Cron 七字段说明

Quartz Cron 的完整格式通常是:秒 分钟 小时 日 月 周 年。其中年份字段可选,不同框架对特殊符号的支持略有差异,正式上线前应以实际调度器的解析结果为准。

0-59控制任务在每分钟的第几秒触发,例如 0/5 表示从第 0 秒开始每 5 秒执行一次。
分钟0-59控制任务在每小时的第几分钟触发,例如 0/10 表示每 10 分钟执行一次。
小时0-23控制任务在一天中的第几个小时触发,例如 9-18 表示 9 点到 18 点范围内匹配。
1-31控制每月第几天执行。Quartz 中常用 ? 表示不指定,L 表示最后一天,W 表示最近工作日。
1-12控制在哪些月份执行,可以用数字,也可以在部分框架中使用英文月份缩写。
1-7控制星期几执行。Quartz 常用 ? 避免与“日”字段冲突,也支持工作日范围写法。
可选限制表达式在哪些年份生效。大多数长期运行任务会使用 * 表示每年都生效。
Common Patterns

常见 Cron 表达式示例

下面这些是后台开发、运维调度和自动化任务中最常见的 Cron 写法。你可以先从示例开始,再根据业务需要调整秒、分钟、小时、日、月、周和年字段。

每 5 秒执行

0/5 * * * * ? *

适合短周期轮询、测试环境任务和临时调试。生产环境应谨慎使用,避免任务堆积。

每 10 分钟执行

0 0/10 * * * ? *

适合缓存刷新、消息补偿、轻量数据同步等周期任务。

每天凌晨执行

0 0 0 * * ? *

适合日报生成、数据归档、离线统计和低峰期批处理。

每天上午 9 点

0 0 9 * * ? *

适合工作日开始前的提醒、报表初始化或自动检查任务。

工作日 10:15

0 15 10 ? * 2-6 *

适合只在周一到周五触发的办公流程、通知任务和业务巡检。

每月最后一天

0 15 10 L * ? *

适合月度结算、账单生成、月末数据汇总等场景。

FAQ

Cron 表达式常见问题

Linux Crontab 和 Quartz Cron 有什么区别?

Linux Crontab 通常使用 5 位字段:分钟、小时、日、月、周。Quartz Cron 常见为 6 位或 7 位字段,会额外包含秒字段,并可选包含年份字段,同时支持 ?LW# 等特殊符号。

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

* 表示任意值都会匹配,? 表示不指定具体值。在 Quartz 中,“日”和“周”两个字段通常需要一个使用具体规则,另一个使用 ?,避免两个字段同时约束导致语义冲突。

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

表达式看起来正确并不代表实际执行时间符合预期。通过最近运行时间可以快速发现时区、星期、月份、间隔步长和日/周字段冲突等问题。

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

本工具的生成、解释和运行时间计算都在浏览器本地完成,不需要登录,也不依赖后端接口,适合在处理内部任务规则时使用。