解释 Linux、Spring 或 Quartz 的 cron,也可以按字段生成,并按这台电脑的本地时间列出接下来 10 次运行。 生成 Crontab
可选 Linux Crontab(5 位)、Spring @Scheduled(6 位,秒在最前)或 Quartz(6 位,也可以再加年)。页面逐段解释,并按这台电脑的时钟列出接下来 10 次运行。不会把任务装进系统。若要按每天几点,或 @daily 这种写法来生成,用 Cron 表达式生成器。时间戳用 Unix 时间戳。
*/15 9-17 * * 1-5,Spring 0 */15 9-17 * * MON-FRI,Quartz 0 */15 9-17 ? * MON-FRI。? 换成 *;把星期数字改成 SUN–SAT,让同一批星期保持不变。Linux 是分、时、日、月、星期。周日是 0、7 或 SUN,周一是 1。没有 ?、L、W、#。日和星期都做了限制时,两边有一边符合即可,结果里会写明。
Spring 在最前面加秒。周日编号和 Linux 相同。? 表示这一位不看。L 是当月最后一天。15W 是离 15 号最近的工作日,不会跨出这个月。LW 是当月最后一个工作日。MON#1 是第一个周一。6L 是最后一个周六,因为这里的 6 是周六。
Quartz 同样是这六位,年可以写成 2024-2030。周日是 1 或 SUN,周一是 2,周六是 7。6L 是最后一个周五。日和星期里应有一个是 ?,例如每天凌晨 2 点写作 0 0 2 * * ?。如果两边都写了具体值,页面仍按「有一边符合就运行」列出时间,并给出警告。SUN–SAT 和 JAN–DEC 不区分大小写,三种格式里表示同一天、同一个月。
连字符是范围,逗号是列举,斜线是步长。*/15 从该段的起点每隔 15。5/15 从 5 开始每隔 15 直到该段结束,所以分钟是 5、20、35、50。时间是本地时间,不是 UTC。有秒这一位时按秒推进,否则按分钟推进。
0 2 * * *。0 0 2 * * *。0 15 10 ? * 6L(每月最后一个周五 10:15)或 0 0 23 L * ?(每月最后一天 23:00)。Linux 没有秒,所以是 0 2 * * *。Spring 和 Quartz 把秒放在最前,同一时刻是 0 0 2 * * *;Quartz 常写成 0 0 2 * * ?。
表示这一位不指定。Quartz 要求日和星期里有一个是 ?。0 0 2 * * ? 是每天凌晨 2 点。
Linux 和 Spring 里 1 是周一,周日是 0 或 7。Quartz 里 1 是周日,2 是周一。三种格式里 SUN 都是周日。
接下来 10 次运行用的是这台电脑的本地时区。