🕐 Cron表达式解析
表达式翻译 · 自然语言 · 未来执行时间
表达式翻译 · 自然语言 · 未来执行时间
标准Unix Cron格式为5个字段:分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-7,0和7都表示周日)。例如"0 0 * * *"表示每天凌晨执行。
星号(*)表示所有值;逗号(,)表示多个值如1,3,5;连字符(-)表示范围如1-5;斜杠(/)表示步进如*/15表示每15分钟;问号(?)在非标准格式中表示不指定。
请检查是否严格按照"分 时 日 月 周"的5字段格式,各字段用空格分隔。每分钟执行一次用"* * * * *"。
标准Cron里日和周的取值是「或」的关系,即任一条件满足就执行。某些实现(如Quartz)要求两者至少一个用问号(?),否则会提示冲突。
标准Cron 5个字段,Quartz则扩展为6-7个字段,多了秒和年。例如Quartz的"0 0 6 * * ?"表示每天6点整。本工具按标准5字段解析。
在标准5字段Cron里没有问号的位置差异,但?和*在周字段都能表示「任意」。区别在于?在有些系统里表示「不指定」,与日期字段配合时更明确。
用步进斜杠:"0 */2 * * *" 表示每2小时的整点执行。注意步进的起点,*/2从0点开始,即0、2、4...22点执行。
系统Cron默认使用服务器本地时区。如果你的服务器是UTC而业务是国内时间,需要换算或用 TZ 环境变量指定时区,否则执行时间可能差8小时。
Cron表达式由5个用空格分隔的字段组成,从左到右依次是:分、时、日、月、周。每个字段都有自己的取值范围,理解这些范围就不会写错。
| 字段 | 含义 | 取值范围 | 说明 |
|---|---|---|---|
| 第1段 | 分钟 | 0-59 | 每小时的第几分钟 |
| 第2段 | 小时 | 0-23 | 每天的第几小时 |
| 第3段 | 日 | 1-31 | 每月的第几天 |
| 第4段 | 月 | 1-12 | 每年的第几月 |
| 第5段 | 周 | 0-7 | 每周的第几天,0和7都是周日 |
组合示例:"0 8,12,18 * * *" 在8点、12点、18点各执行一次;"0 */2 * * *" 每2小时执行。
把这些表达式拿去本工具解析,能直观看到每一步对应的自然语言描述和未来执行时间,方便验证自己的理解是否正确。
| 表达式 | 含义 | 频率 |
|---|---|---|
| * * * * * | 每分钟执行 | 1分钟 |
| */5 * * * * | 每5分钟执行 | 5分钟 |
| */30 * * * * | 每30分钟执行 | 30分钟 |
| 0 * * * * | 每小时整点执行 | 1小时 |
| 0 */2 * * * | 每2小时整点执行 | 2小时 |
| 0 0 * * * | 每天0点执行 | 每天 |
| 0 8 * * * | 每天8点执行 | 每天 |
| 0 0 * * 0 | 每周日0点执行 | 每周 |
| 0 0 1 * * | 每月1日0点执行 | 每月 |
| 0 0 1 1 * | 每年1月1日执行 | 每年 |
| 30 8 * * 1-5 | 工作日8:30执行 | 工作日 |
| 0 0,12 * * * | 每天0点和12点 | 每天2次 |
| 字段 | 标准Cron(5段) | Quartz(7段) |
|---|---|---|
| 秒 | 无 | 第1段 0-59 |
| 分 | 第1段 0-59 | 第2段 0-59 |
| 时 | 第2段 0-23 | 第3段 0-23 |
| 日 | 第3段 1-31 | 第4段 1-31 |
| 月 | 第4段 1-12 | 第5段 1-12 |
| 周 | 第5段 0-7 | 第6段 1-7 |
| 年 | 无 | 第7段 可选 |
1. 在输入框中输入标准5字段Cron表达式。
2. 查看自然语言翻译和执行周期说明。
3. 查看未来5次执行时间。