CodeToolProCodeToolProFree Online Developer Tools
GitHub

Cron Expression Parser

Format: minute hour day-of-month month day-of-week

Description

at 9:0, on Mon-Fri

Next Runs

Could not calculate

技术详情

Cron 表达式解析器的工作原理

工具功能

Cron 表达式解析器可将 Cron 定时任务表达式转换为人类可读的自然语言描述,并计算接下来的执行时间。工具支持标准的 5 字段 Cron 表达式(分钟、小时、日期、月份、星期),支持通配符(*)、范围(-)、间隔(*/)和具体值。输入表达式后,工具即时显示描述文本和未来 5 次执行时间。


常见开发者使用场景

Cron 表达式是 Linux/Unix 系统中定时任务调度的核心。在服务器运维中,使用 crontab 设置数据备份、日志清理、证书续期等定时任务;在 Web 应用中,使用 Cron 表达式配置定时任务框架(如 Spring @Scheduled、Celery Beat);在 GitHub Actions 中,使用 Cron 语法定义工作流触发时间;在 Kubernetes 中,CronJob 资源使用 Cron 表达式定义执行时间。该工具帮助理解和验证 Cron 表达式。

Cron 表达式中使用的时间单位可以通过 单位转换器 换算,如果你需要将 Cron 触发时间和具体日期互查,可以使用 时间戳转换器


Cron 表达式语法详解

标准 Cron 表达式包含 5 个空格分隔的字段,每个字段的可接受值如下:

  • 分钟:0-59。* 表示每分钟,*/5 表示每 5 分钟,0,30 表示在 0 和 30 分执行
  • 小时:0-23。* 表示每小时,9-17 表示 9 点到 17 点,*/2 表示每 2 小时
  • 日期:1-31。* 表示每天,1,15 表示每月 1 号和 15 号
  • 月份:1-12。* 表示每月,1-6 表示 1 月到 6 月
  • 星期:0-6(0=周日)或 1-7(1=周一)。* 表示每天,1-5 表示工作日(周一到周五),0,6 表示周末

常用的 Cron 表达式示例:0 0 * * *(每天午夜)、0 9 * * 1-5(工作日上午 9 点)、*/5 * * * *(每 5 分钟)、0 0 1 * *(每月 1 号午夜)。


常见陷阱与注意事项

  • 服务器时区:Cron 使用服务器的系统时区,通常为 UTC。设置定时任务时注意时区差异,中国时区(UTC+8)比 UTC 提前 8 小时。
  • 字段数量差异:标准 Unix Cron 使用 5 个字段,但有些系统(如 Quartz Scheduler)使用 6 或 7 个字段(增加秒和年)。不同平台的 Cron 语法可能略有差异。
  • 日与星期冲突:同时指定日期和星期可能导致预期外的行为。大多数系统的逻辑是 "OR"(任一满足即执行),而非 "AND"。
  • 服务器不可用:Cron 任务在服务器关机期间不会执行也不会补偿。对于关键任务,应使用分布式调度器(如 Airflow)确保可靠性。

何时使用此工具而非代码

在编写和验证 Cron 表达式、理解现有定时任务、或学习 Cron 语法时使用此工具。对于生产环境中的 Cron 等价功能,推荐使用编程语言的标准调度库(如 Node.js 的 node-cron、Python 的 APScheduler、Java 的 Quartz),它们提供更灵活的调度控制和错误处理。