Cron 表达式生成器 - 在线定时任务配置和解析工具

Cron 表达式生成器 - 在线定时任务配置和解析工具

Cron 表达式:
表达式含义:12点0分执行

最近10次运行时间

请输入有效的 Cron 表达式

💡 提示:所有计算均在本地完成,不上传任何数据到服务器

常用 cron 表达式例子

*/2 * * * * *每2秒执行任务
0 */2 * * * *每2分钟执行任务
0 0 2 1 * *每月1日凌晨2点
0 0 2 * * ?每日凌晨2点
0 15 10 ? * 2-6周一至周五上午10:15
0 15 10 ? * 6L 2002-20062002-2006年每月最后一个周五10:15
0 0 10,14,16 * * *每天上午10点、下午2点、4点
0 0/30 9-17 * * *工作时间每半小时
0 0 12 ? * 4每周三中午12点
0 15 10 ? * 6L每月最后一个周五10:15
0 15 10 ? * 6#3每月第三个周五10:15
Cron 表达式基础知识

什么是 Cron 表达式?

Cron 表达式是一种用于配置定时任务执行时间的字符串格式,最初源自 Unix/Linux 系统的 cron 守护进程。一个标准的 Cron 表达式由 6 到 7 个字段组成,每个字段用空格分隔,分别表示秒、分、时、日、月、周几和可选的年份。通过特殊的通配符(*)、逗号(,)、连字符(-)、斜杠(/)等符号,可以灵活地定义任务的执行时间规则。Cron 表达式被广泛应用于 Linux crontab、Java Quartz 框架、GitHub Actions、Jenkins CI/CD 等各种定时任务调度系统中。

Cron 表达式字段详解

字段取值范围特殊字符示例
0-59* , - /0/5(每5秒)
分钟0-59* , - /*/10(每10分钟)
小时0-23* , - /9-18(9到18点)
1-31* ? L W15(每月15号)
1-12* , - /6(六月)
1-7(1=周日)* ? 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)的字段数量可能不同,使用时请注意确认
展开使用说明
更多推荐
查看更多
HTML 预览开发工具
YAML ↔ Properties开发工具
XPath 测试开发工具
JSONPath 测试开发工具
JSON 转 Java开发工具
JSON ↔ XML 互转开发工具
XML 格式化开发工具