在线 Cron 表达式解析器,解析并展示 Cron 表达式的下一次执行时间
使用场景
接手别人项目的时候最需要这个。你刚入职一家新公司,维护一套旧的定时任务系统,里面几十个 Cron 表达式写得千奇百怪。有 “30 4 * * 1-5” 这种标准写法,也有 “0 0 1 */2 *” 这种季度执行的任务。不看文档你根本不知道这些表达式什么时候执行。用解析器输入进去,工具直接把接下来 5 次执行时间列出来——“2026 年 5 月 25 日凌晨 4:30”、“2026 年 5 月 26 日凌晨 4:30”……一目了然。
做代码审查(Code Review)的时候也很有用。同事提交了一个新的定时任务配置,Cron 表达式写的是 “0 0 * * 1”。你说它是"每天凌晨跑"还是"每周一凌晨跑"?解析器一看就知道:每周一凌晨零点执行。如果预期是每天跑,那这个表达式显然写错了,赶紧改。
你自己调测定时任务的时候也用得上。改了一个 Cron 表达式,想确认下对不对。比如你把 “0 2 * * *"(每天凌晨 2 点)改成了 “0 2 */2 * *"(每隔两天凌晨 2 点),用解析器生成接下来的执行日期看看:结果在 5 月 24 日、5 月 26 日、5 月 28 日……确认间隔两天,没问题。
常见问题
问:解析器支持 6 位和 7 位的 Cron 表达式吗? 答:目前标准版支持 5 位的 Linux Crontab 格式。如果你用的是 Quartz Scheduler 的 6 位(含秒)或 7 位(含年和秒)格式,建议先把多出来的字段去掉再解析,或者等后续版本的支持更新。
*问:为什么我输入了 “0 0 29 2 ” 有时会显示"没找到执行时间”? 答:因为 “0 0 29 2 *” 表示"2 月 29 日凌晨零点”,但 2 月 29 日只在闰年有。如果当前年份不是闰年,解析器自然找不到任何执行时间。这是合理的行为——提醒你这个任务只在闰年才能执行一次。
问:解析出来下一次执行时间和我预期的不一样,是什么问题? 答:常见原因有三个:一是时区设置不一致,Cron 默认使用服务器本地时区;二是日期和星期同时设置了(标准 Crontab 里日期和星期是"或"的关系,不是"且");三是你漏掉了某些约束条件。检查一下这三个方面应该能找到问题。
相关工具推荐
- Cron 表达式生成器 - 可视化生成 Cron 表达式
- 时间戳转换器 - 时间格式转换
- 时区转换器 - 确认时区后再解析表达式