Cron表达式在线解析工具
输入Cron表达式,查看未来执行时间。支持标准Cron表达式格式(5位和6位),包括Quartz调度器扩展语法。
常用示例:
每周一9:00
每月1日0:00
每5分钟
每天12:00
工作日8-18点每小时
执行时间结果
以下是根据您的Cron表达式计算出的未来执行时间:
| # | 执行时间 |
|---|
Cron表达式示例
以下是一些常用的Cron表达式示例,您可以直接测试或复制使用:
| # | 场景 | Cron表达式 | 操作 |
|---|
什么是Cron表达式
Cron表达式是一种用于配置定时任务执行时间的字符串格式,广泛应用于Linux系统的crontab、Quartz调度器、Spring Scheduler等定时任务框架中。通过Cron表达式,您可以精确地定义任务在何时执行,支持分钟、小时、日期、月份、星期等多个时间维度的灵活配置。
Cron表达式通常由5或6个时间字段组成,每个字段用空格分隔,表示不同的时间单位。标准的5位表达式格式为:分 时 日 月 星期,而6位表达式在最前面增加了秒字段。
Cron表达式语法规范
时间字段说明
| 位置 | 字段 | 允许值 | 允许的特殊字符 |
|---|---|---|---|
| 1 | 秒(可选) | 0-59 | * / , - |
| 2 | 分钟 | 0-59 | * / , - |
| 3 | 小时 | 0-23 | * / , - |
| 4 | 日期 | 1-31 | * / , - ? L W |
| 5 | 月份 | 1-12 或 JAN-DEC | * / , - |
| 6 | 星期 | 0-7 或 SUN-SAT | * / , - ? L # |
特殊字符说明
- *:表示匹配该字段的所有值,例如在分钟字段使用*表示每分钟
- ?:只能用在日期和星期字段,表示"无指定值",用于避免日期和星期冲突
- -:表示范围,例如1-5表示1到5
- ,:表示列举值,例如MON,WED,FRI表示周一、周三、周五
- /:表示步长,例如*/5表示每5个单位执行一次
- L:只能用在日期和星期字段,表示"最后",例如L在日期字段表示当月最后一天
- W:只能用在日期字段,表示最近的工作日
- #:只能用在星期字段,表示第几个星期几,例如6#3表示第三个星期五
注意事项
- Cron表达式对大小写不敏感,月份和星期的英文名称可以使用大写或小写
- 日期和星期字段不能同时指定具体值,其中一个必须使用?表示无指定
- 在使用6位表达式(包含秒)时,某些系统可能不支持,请根据实际环境选择合适的格式
- 注意时区问题,不同系统可能使用不同的时区设置
- 避免在高频率任务中使用过大的执行数量,可能影响系统性能
- 表达式中的空格必须使用标准空格字符,不能使用制表符或其他空白字符
常见问题
Cron表达式解析失败怎么办?
请检查表达式格式是否正确,确保每个字段的值在允许范围内,特殊字符使用正确。可以参考页面上的示例表达式,或使用测试功能验证表达式是否有效。
为什么日期和星期不能同时指定?
Cron表达式设计中,日期和星期字段存在冲突关系。如果同时指定了日期和星期,系统无法确定具体的执行时间。通常使用?表示其中一个字段无指定,让另一个字段生效。
如何表示"每月最后一天"?
在日期字段使用L字符,例如 0 0 L * ? 表示每月最后一天的午夜执行。
Quartz和Linux Cron有什么区别?
Quartz支持6位表达式(包含秒),而Linux Cron默认只支持5位表达式。此外,Quartz还扩展了L、W、#等特殊字符,提供更丰富的调度能力。