Cron 表达式工具 - 在线解析定时任务并计算执行时间
在线解析 Cron 表达式并计算接下来的执行时间,适合检查 Linux crontab、定时任务配置和周期调度规则。
功能特点
- 解析 Cron 表达式的分钟、小时、日期、月份和星期字段
- 计算未来执行时间,帮助确认定时任务是否按预期触发
- 辅助排查常见 crontab 配置、周期设置和时间范围问题
- 适合后端任务、运维脚本、数据同步和定时通知场景
使用方法
- 输入需要检查的 Cron 或 crontab 表达式
- 查看字段解释和接下来的执行时间列表
- 根据结果调整定时任务配置并复制到部署环境中
示例输入
工作日上午 9 点执行
表达式:0 9 * * 1-5 起始时间:2026-08-01T00:00:00.000Z适合配置工作日的报表、同步任务或通知任务;要结合服务器时区确认实际触发时间。
每 15 分钟执行
表达式:*/15 * * * * 起始时间:2026-08-01T10:07:00.000Z适合轮询队列、健康检查和短周期同步;先确认任务耗时不会超过执行间隔。
每月 1 日凌晨执行
表达式:0 0 1 * * 起始时间:2026-08-15T00:00:00.000Z适合月度账单、归档和统计任务;月底天数变化不会影响每月 1 日触发。
排查执行时间偏差
表达式:0 9 * * * 起始时间:2026-08-01T00:00:00.000Z 服务器:UTC 期望:Asia/Shanghai 09:00适合定位容器、云主机或 CI 环境中因时区不同造成的任务提前或延后。
示例输出
工作日上午 9 点执行
2026-08-03T09:00:00.000Z 2026-08-04T09:00:00.000Z 2026-08-05T09:00:00.000Z 2026-08-06T09:00:00.000Z 2026-08-07T09:00:00.000Z每 15 分钟执行
2026-08-01T10:15:00.000Z 2026-08-01T10:30:00.000Z 2026-08-01T10:45:00.000Z 2026-08-01T11:00:00.000Z 2026-08-01T11:15:00.000Z每月 1 日凌晨执行
2026-09-01T00:00:00.000Z 2026-10-01T00:00:00.000Z 2026-11-01T00:00:00.000Z 2026-12-01T00:00:00.000Z 2027-01-01T00:00:00.000Z排查执行时间偏差
2026-08-01T09:00:00.000Z 起的 5 个每日 UTC 触发;UTC 09:00 对应 Asia/Shanghai 17:00
常见错误
- 把 Cron 的字段顺序写错;常见五字段顺序是分钟、小时、日期、月份、星期。
- 只看表达式不看运行环境时区,服务器使用 UTC 而本地按 Asia/Shanghai 预期会产生时间偏差。
- 把 0 和 7 的星期日写法、月份和星期的取值范围直接套到所有调度器,实际支持范围可能不同。
- 任务执行时间超过调度间隔却没有锁或幂等处理,可能导致重复执行、并发写入或任务堆积。
适用场景
- Linux crontab 定时任务
- Docker 和 Kubernetes 定时作业
- 数据同步与报表生成
- 定时通知和缓存刷新
- 任务时间偏差排查
实操检查
核对每 15 分钟的 UTC 结果
固定输入:表达式 */15 * * * *,基准时间 2026-07-17T00:07:00.000Z;步骤:点击“解析 Cron”,查看前五次时间;预期结果:第一批时间从 2026-07-17T00:15:00.000Z 开始,前五次按 15 分钟递增且均为 Z 结尾;失败判断:返回 00:07、使用本地时区,或间隔不是 15 分钟。
核对五字段和范围错误
固定输入:61 * * * *;步骤:点击“解析 Cron”,再输入 0 9 * * 1 并以 2026-07-17T00:00:00.000Z 为基准解析;预期结果:第一步显示范围错误且没有运行列表,第二步产生从 2026-07-20T09:00:00.000Z 开始的周一 UTC 时间;失败判断:61 被接受、五字段表达式没有结果,或错误后仍显示旧运行列表。
页面专属核验
使用前与操作中
- 实现严格解析五字段分钟、小时、日、月、星期表达式,按 UTC 查找未来时间;带秒的 Quartz/六字段表达式和未实现的扩展语法不能直接套用。
- 确认范围、列表、区间、步长和星期 0/7 的含义;当日-of-month 与日-of-week 都不是 `*` 时,页面按两者匹配其一的 OR 语义计算。
- 结果是从基准时间下一分钟开始扫描的候选执行时间,不包含目标调度器的本地时区、夏令时、权限、部署状态或任务成功率。
结果出来后
- `0 9 * * 1` 在给定 UTC 基准时间后,是否列出下一个周一 09:00 的 ISO 时间,而不是按本机时区显示?
- `*/15 * * * *`、范围和步长是否落在各字段边界内,非法的 `61 * * * *` 或非五字段输入是否明确报错?
- 生产环境的 crontab、框架调度器或云平台是否采用同样的五字段、星期和时区语义,并单独验证了 DST 与任务幂等性?
相关工具
工具边界
- 页面按常见五字段 Cron 规则计算,不覆盖所有云厂商、Quartz、Jenkins 或扩展字段语法。
- 计算结果基于输入的起始时间,不读取服务器真实时区、夏令时、任务锁或运行日志。
- 表达式有效不代表任务逻辑正确,也不代表脚本有执行权限或依赖服务可用。
与相似工具的区别
- 时间戳转换:Cron 描述重复执行计划并计算后续触发;时间戳代表单个绝对时刻,适合核对时区换算。
安全与兼容性
- 表达式解析在本地完成;工具不会连接服务器或确认任务已安装、运行及成功退出。
- 生产调度必须处理时区、夏令时、并发锁、幂等、超时与失败告警,预览出的时间列表不能替代运行监控。
下一步排查
- 先确认目标调度器、字段格式、服务器时区和夏令时规则。
- 再用时间戳工具核对预期时间,并检查任务日志、退出码和执行耗时。
- 生产任务补充幂等、锁、超时、重试和失败告警,避免重复执行或静默失败。
常见问题
Cron 表达式会自动使用我的本地时区吗?
不会。执行时间由 crond、容器、云平台或调度器的时区设置决定;工具只按输入的起始时间计算,不代表目标环境的真实时区。
为什么每月任务在某些月份没有执行?
日期字段和星期字段的组合可能排除了预期日期,或者目标调度器对字段语义有差异;应查看实际调度器文档和任务日志。
这个工具能保证任务一定会执行吗?
不能。它只解析表达式并计算时间,不检查进程、容器、权限、锁、依赖服务或任务执行结果。