Cron 表达式解析

用中文说明 Cron 表达式的意思,并列出接下来的执行时间。按北京时间计算。

标准写法是 5 段:分 时 日 月 周。每段可以用 *、逗号列举、短横线范围、斜杠步长,也支持英文月份和星期缩写,以及 @daily 这类别名。

怎么写 Cron

从左到右五段分别是分钟、小时、日期、月份、星期。例如 0 8 * * 1-5 表示周一到周五每天 8 点整执行,*/15 * * * * 表示每 15 分钟一次,0 0 1 * * 表示每月 1 日零点执行。

每段的写法:* 表示任意值;1,3,5 列举;1-5 表示范围;*/10 表示从最小值开始每隔 10;10-30/5 表示 10 到 30 之间每隔 5。月份和星期可以用 JAN、MON 这样的英文缩写。星期里 0 和 7 都表示周日。

日期和星期的组合比较特别:两者都限定时,满足其中一个就会执行,而不是同时满足。@daily、@weekly、@monthly、@hourly、@yearly 这些别名分别对应常见的固定写法。

这里的计算按北京时间(UTC+8,没有夏令时)进行。Linux 的 crontab 用的是系统本地时区,容器里常常是 UTC,实际部署时要确认时区设置,否则执行时间可能差 8 小时。不同的调度系统对秒级字段和 L、W、# 等扩展写法的支持并不一致。