Cron 表达式生成器 - 在线定时任务配置和解析工具
最近10次运行时间
请输入有效的 Cron 表达式
常用 cron 表达式例子
什么是 Cron 表达式?
Cron 表达式是一种用于配置定时任务执行时间的字符串格式,最初源自 Unix/Linux 系统的 cron 守护进程。一个标准的 Cron 表达式由 6 到 7 个字段组成,每个字段用空格分隔,分别表示秒、分、时、日、月、周几和可选的年份。通过特殊的通配符(*)、逗号(,)、连字符(-)、斜杠(/)等符号,可以灵活地定义任务的执行时间规则。Cron 表达式被广泛应用于 Linux crontab、Java Quartz 框架、GitHub Actions、Jenkins CI/CD 等各种定时任务调度系统中。
Cron 表达式字段详解
* , - /0/5(每5秒)* , - /*/10(每10分钟)* , - /9-18(9到18点)* ? L W15(每月15号)* , - /6(六月)* ? L #MON(星期一)* , - /2025(指定年份)特殊字符说明
*通配符:表示该字段的所有可能值,如小时字段为 * 表示每小时?不指定:用于日和周字段,表示不指定具体值(两者必须一个为 * 另一个为 ?),枚举:表示多个值,如 1,15,28 表示第1、15、28天-范围:表示一个区间,如 1-5 表示从1到5/步进:表示间隔频率,如 0/15 表示从0开始每15个单位LLast:表示最后,如 L 表示每月最后一天W工作日:表示最近的工作日,如 15W 表示15号最近的工作日#第N个:表示第几个,如 6#3 表示每月的第三个星期五⚠️ 重要:日和周字段的互斥规则
Quartz Cron 格式要求:日和周两个字段不能同时指定具体值。 当一个字段使用 *(通配符)时,另一个字段必须使用 ?(表示不指定)。
0 0 2 * * *日和周字段都是 *,导致冲突报错0 0 2 * * ?日字段为 *,周字段为 ?(不指定),符合规范💡 提示:? 字符仅用于日和周字段,表示"不指定具体值"。如果您想按日期触发任务(如每月1号),日期字段填具体值或 *,周字段填 ?;如果您想按星期触发任务(如每周一),周字段填具体值或 *,日期字段填 ?。
📋 使用建议和最佳实践
- 在 Quartz 格式中,日和周字段不能同时指定,一个为
*时另一个必须为? - 避免使用过于频繁的定时任务(如每秒执行),以免对服务器造成过大压力
- 在生产环境中部署定时任务前,务必使用本工具的"最近运行时间"功能验证执行计划是否符合预期
- 对于跨时区的定时任务,建议在表达式中使用 UTC 时间,并在代码中进行时区转换
- 定期检查和维护定时任务配置,移除不再需要的任务,避免资源浪费
- 不同 Cron 实现(如 Linux crontab vs Quartz)的字段数量可能不同,使用时请注意确认
工具介绍
Cron 表达式生成器是一款功能强大的定时任务配置可视化工具,支持标准 Cron 和 Quartz 格式的创建与解析。通过直观的 Tab 界面,您可以轻松配置秒、分、时、日、月、周等时间字段,工具会自动生成对应的 Cron 表达式。内置智能解析引擎,可将表达式翻译为自然语言描述,并实时计算未来10次的执行时间。适用于 Linux crontab、Java Quartz 框架、GitHub Actions、Jenkins CI/CD 等各种定时任务调度场景。
使用方法
- 1选择并配置时间字段
通过顶部的 Tab 标签页(秒、分、时、日、月、周、年)逐项配置 Cron 表达式的每个字段,支持精确值、范围、列表、间隔等多种配置方式。
- 2查看生成的表达式
配置完成后,工具会自动生成对应的 Cron 表达式,您可以在表达式输入框中查看、编辑或直接复制该表达式。
- 3理解表达式含义
工具会将 Cron 表达式翻译为中文自然语言描述,帮助您快速理解定时任务的执行规则。
- 4查看执行时间安排
在"最近10次运行时间"区域,您可以看到该表达式接下来10次的具体执行时间和相对时间,方便验证配置是否正确。
使用技巧
- Quartz 格式中,日和周字段不能同时指定,一个设为 * 时另一个必须设为 ?
- 使用"常用例子"面板可以快速套用预置的 Cron 表达式模板,快速上手
- 生成表达式后,建议使用"最近运行时间"功能验证执行计划是否符合预期
- 对于生产环境的定时任务,建议在非业务高峰期配置和执行,避免影响系统性能
- Cron 表达式中的周字段,1 代表周日,2 代表周一,以此类推,7 代表周六
- 如需按年限定执行范围,可以在年份字段中设置具体年份或年份范围
常见问题
什么是 Cron 表达式?它与定时任务有什么关系?
Cron 表达式是一种用于配置定时任务执行时间的字符串格式,由 6-7 个字段组成,分别表示秒、分、时、日、月、周等时间维度。几乎所有支持定时任务的系统都使用 Cron 表达式来配置调度规则,包括 Linux 的 crontab、Java 的 Quartz 框架、GitHub Actions、Jenkins CI/CD 等。通过修改 Cron 表达式,您可以精确控制任务在何时执行、执行频率以及适用范围。
标准 Cron 和 Quartz 格式有什么区别?
标准 Linux Cron 表达式由 5 个字段组成(分、时、日、月、周),而 Quartz 格式增加了秒和年字段,共 7 个字段。此外,Quartz 支持更多特殊字符,如 ?(不指定)、L(最后)、W(工作日)、#(第N个星期几)。本工具默认使用 Quartz 格式,也兼容标准 Cron 格式。在 Quartz 中,日和周字段不能同时指定,一个为 * 时另一个必须为 ?。
如何调试 Cron 表达式是否正确?
调试 Cron 表达式有几个方法:首先,使用本工具的"表达式含义"功能,它会将表达式翻译为中文描述,帮助确认理解是否正确;其次,查看"最近10次运行时间",检查生成的执行时间是否符合预期;第三,可以从"常用例子"中找类似的表达式作为参考;第四,对于复杂的表达式(如涉及 L、# 等特殊字符),建议逐段验证每个字段的含义。如果表达式格式有误,工具会提示解析错误。
Cron 表达式中的特殊字符 L、W、# 是什么意思?
L(Last):表示最后。在日字段中表示每月最后一天,在周字段中表示每周的最后一天(星期六/周六)。如 L 表示每月最后一天,6L 表示每月最后一个星期五。W(Weekday):表示最近的工作日(周一至周五)。如 15W 表示15号最近的工作日,如果15号是周六则提前到周五,如果是周日则推迟到下周一。#(Hash):表示第N个星期几。如 6#3 表示每月的第三个星期五(6=星期五,3=第三个)。这些特殊字符组合使用可以实现非常灵活的调度规则。