Cron 表达式工具 - 在线解析定时任务并计算执行时间

在线解析 Cron 表达式并计算接下来的执行时间,适合检查 Linux crontab、定时任务配置和周期调度规则。

功能特点

  • 解析 Cron 表达式的分钟、小时、日期、月份和星期字段
  • 计算未来执行时间,帮助确认定时任务是否按预期触发
  • 辅助排查常见 crontab 配置、周期设置和时间范围问题
  • 适合后端任务、运维脚本、数据同步和定时通知场景

使用方法

  1. 输入需要检查的 Cron 或 crontab 表达式
  2. 查看字段解释和接下来的执行时间列表
  3. 根据结果调整定时任务配置并复制到部署环境中

示例输入

  • 工作日上午 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 与任务幂等性?

相关工具

  • 时间戳转换:Unix 时间戳与日期时间相互转换
  • 文本对比:按行对比文本、配置、日志和接口响应差异
  • YAML 格式化:格式化、校验 YAML,并支持 YAML 与 JSON 互转
  • JSON 工具:统一处理 JSON 格式化、校验、树形查看、Schema、CSV 转换、AI 响应分析和 JSON 修复

工具边界

  • 页面按常见五字段 Cron 规则计算,不覆盖所有云厂商、Quartz、Jenkins 或扩展字段语法。
  • 计算结果基于输入的起始时间,不读取服务器真实时区、夏令时、任务锁或运行日志。
  • 表达式有效不代表任务逻辑正确,也不代表脚本有执行权限或依赖服务可用。

与相似工具的区别

  • 时间戳转换:Cron 描述重复执行计划并计算后续触发;时间戳代表单个绝对时刻,适合核对时区换算。

安全与兼容性

  • 表达式解析在本地完成;工具不会连接服务器或确认任务已安装、运行及成功退出。
  • 生产调度必须处理时区、夏令时、并发锁、幂等、超时与失败告警,预览出的时间列表不能替代运行监控。

下一步排查

  1. 先确认目标调度器、字段格式、服务器时区和夏令时规则。
  2. 再用时间戳工具核对预期时间,并检查任务日志、退出码和执行耗时。
  3. 生产任务补充幂等、锁、超时、重试和失败告警,避免重复执行或静默失败。

常见问题

Cron 表达式会自动使用我的本地时区吗?

不会。执行时间由 crond、容器、云平台或调度器的时区设置决定;工具只按输入的起始时间计算,不代表目标环境的真实时区。

为什么每月任务在某些月份没有执行?

日期字段和星期字段的组合可能排除了预期日期,或者目标调度器对字段语义有差异;应查看实际调度器文档和任务日志。

这个工具能保证任务一定会执行吗?

不能。它只解析表达式并计算时间,不检查进程、容器、权限、锁、依赖服务或任务执行结果。