解析 CRON 表达式,展示下次执行时间
Cron 是 Unix/Linux 系统中用于定义定时任务的时间调度语法。通过一行简洁的表达式,即可精确描述任务的执行周期——从每分钟执行到每年特定日期执行。它是 CI/CD、数据备份、监控报警等自动化场景的基础。
┌──── 分钟 0-59
│ ┌── 小时 0-23
│ │ ┌─ 日期 1-31
│ │ │ ┌ 月份 1-12
│ │ │ │ ┌ 星期 0-7(0和7均为周日)
* * * * *
* 任意值 · , 多个值(1,15)· - 范围(9-17)· / 步长(*/5)
| 表达式 | 含义 |
|---|---|
0 * * * * |
每小时整点 |
0 0 * * * |
每天 0:00 |
*/15 * * * * |
每 15 分钟 |
0 9 * * 1-5 |
工作日 9:00 |
0 2 * * 0 |
每周日 2:00 |
0 0 1 * * |
每月 1 号 0:00 |
注意:Spring Cron 为 6 字段(最前加「秒」),Quartz 为 7 字段(最后加「年」),与标准格式不同。
*/5 和 0/5 有什么区别?在大多数实现中两者等价,都表示「从 0 开始每隔 5」。但 3/5 表示从第 3 开始每隔 5(即 3, 8, 13, 18...)。*/5 是 0/5 的简写。
标准 Cron 不支持「最后一天」语法。一种常见做法是用 0 0 28-31 * * 配合脚本内部判断当天是否为月末。部分扩展实现(如 Spring)支持 L 表示最后一天。
标准 Cron 使用系统本地时区。在容器化或云环境中,建议显式设置 TZ 环境变量确保任务按预期时区执行。Kubernetes CronJob 默认使用 UTC。