Cron 表达式生成器 - 在线定时任务配置和解析工具

Cron 表达式生成器 - 在线定时任务配置和解析工具

Cron 表达式:
表达式含义:12点0分执行

最近10次运行时间

请输入有效的 Cron 表达式

💡 提示:所有计算均在本地完成,不上传任何数据到服务器

常用 cron 表达式例子

*/2 * * * * *每2秒执行任务
0 */2 * * * *每2分钟执行任务
0 0 2 1 * *每月1日凌晨2点
0 0 2 * * ?每日凌晨2点
0 15 10 ? * 2-6周一至周五上午10:15
0 15 10 ? * 6L 2002-20062002-2006年每月最后一个周五10:15
0 0 10,14,16 * * *每天上午10点、下午2点、4点
0 0/30 9-17 * * *工作时间每半小时
0 0 12 ? * 4每周三中午12点
0 15 10 ? * 6L每月最后一个周五10:15
0 15 10 ? * 6#3每月第三个周五10:15
Cron 表达式基础知识

什么是 Cron 表达式?

Cron 表达式是一种用于配置定时任务执行时间的字符串格式,最初源自 Unix/Linux 系统的 cron 守护进程。一个标准的 Cron 表达式由 6 到 7 个字段组成,每个字段用空格分隔,分别表示秒、分、时、日、月、周几和可选的年份。通过特殊的通配符(*)、逗号(,)、连字符(-)、斜杠(/)等符号,可以灵活地定义任务的执行时间规则。Cron 表达式被广泛应用于 Linux crontab、Java Quartz 框架、GitHub Actions、Jenkins CI/CD 等各种定时任务调度系统中。

Cron 表达式字段详解

字段取值范围特殊字符示例
0-59* , - /0/5(每5秒)
分钟0-59* , - /*/10(每10分钟)
小时0-23* , - /9-18(9到18点)
1-31* ? L W15(每月15号)
1-12* , - /6(六月)
1-7(1=周日)* ? L #MON(星期一)
可选* , - /2025(指定年份)

特殊字符说明

*通配符:表示该字段的所有可能值,如小时字段为 * 表示每小时
?不指定:用于日和周字段,表示不指定具体值(两者必须一个为 * 另一个为 ?
,枚举:表示多个值,如 1,15,28 表示第1、15、28天
-范围:表示一个区间,如 1-5 表示从1到5
/步进:表示间隔频率,如 0/15 表示从0开始每15个单位
LLast:表示最后,如 L 表示每月最后一天
W工作日:表示最近的工作日,如 15W 表示15号最近的工作日
#第N个:表示第几个,如 6#3 表示每月的第三个星期五

⚠️ 重要:日和周字段的互斥规则

Quartz Cron 格式要求:日和周两个字段不能同时指定具体值。 当一个字段使用 *(通配符)时,另一个字段必须使用 ?(表示不指定)。

❌ 错误写法:0 0 2 * * *日和周字段都是 *,导致冲突报错
✅ 正确写法:0 0 2 * * ?日字段为 *,周字段为 ?(不指定),符合规范

💡 提示:? 字符仅用于日和周字段,表示"不指定具体值"。如果您想按日期触发任务(如每月1号),日期字段填具体值或 *,周字段填 ?;如果您想按星期触发任务(如每周一),周字段填具体值或 *,日期字段填 ?

📋 使用建议和最佳实践

  • 在 Quartz 格式中,日和周字段不能同时指定,一个为 * 时另一个必须为 ?
  • 避免使用过于频繁的定时任务(如每秒执行),以免对服务器造成过大压力
  • 在生产环境中部署定时任务前,务必使用本工具的"最近运行时间"功能验证执行计划是否符合预期
  • 对于跨时区的定时任务,建议在表达式中使用 UTC 时间,并在代码中进行时区转换
  • 定期检查和维护定时任务配置,移除不再需要的任务,避免资源浪费
  • 不同 Cron 实现(如 Linux crontab vs Quartz)的字段数量可能不同,使用时请注意确认

工具介绍

Cron 表达式生成器是一款功能强大的定时任务配置可视化工具,支持标准 Cron 和 Quartz 格式的创建与解析。通过直观的 Tab 界面,您可以轻松配置秒、分、时、日、月、周等时间字段,工具会自动生成对应的 Cron 表达式。内置智能解析引擎,可将表达式翻译为自然语言描述,并实时计算未来10次的执行时间。适用于 Linux crontab、Java Quartz 框架、GitHub Actions、Jenkins CI/CD 等各种定时任务调度场景。

使用方法

  1. 1
    选择并配置时间字段

    通过顶部的 Tab 标签页(秒、分、时、日、月、周、年)逐项配置 Cron 表达式的每个字段,支持精确值、范围、列表、间隔等多种配置方式。

  2. 2
    查看生成的表达式

    配置完成后,工具会自动生成对应的 Cron 表达式,您可以在表达式输入框中查看、编辑或直接复制该表达式。

  3. 3
    理解表达式含义

    工具会将 Cron 表达式翻译为中文自然语言描述,帮助您快速理解定时任务的执行规则。

  4. 4
    查看执行时间安排

    在"最近10次运行时间"区域,您可以看到该表达式接下来10次的具体执行时间和相对时间,方便验证配置是否正确。

使用技巧

  • Quartz 格式中,日和周字段不能同时指定,一个设为 * 时另一个必须设为 ?
  • 使用"常用例子"面板可以快速套用预置的 Cron 表达式模板,快速上手
  • 生成表达式后,建议使用"最近运行时间"功能验证执行计划是否符合预期
  • 对于生产环境的定时任务,建议在非业务高峰期配置和执行,避免影响系统性能
  • Cron 表达式中的周字段,1 代表周日,2 代表周一,以此类推,7 代表周六
  • 如需按年限定执行范围,可以在年份字段中设置具体年份或年份范围

常见问题

什么是 Cron 表达式?它与定时任务有什么关系?

Cron 表达式是一种用于配置定时任务执行时间的字符串格式,由 6-7 个字段组成,分别表示秒、分、时、日、月、周等时间维度。几乎所有支持定时任务的系统都使用 Cron 表达式来配置调度规则,包括 Linux 的 crontab、Java 的 Quartz 框架、GitHub Actions、Jenkins CI/CD 等。通过修改 Cron 表达式,您可以精确控制任务在何时执行、执行频率以及适用范围。

标准 Cron 和 Quartz 格式有什么区别?

标准 Linux Cron 表达式由 5 个字段组成(分、时、日、月、周),而 Quartz 格式增加了秒和年字段,共 7 个字段。此外,Quartz 支持更多特殊字符,如 ?(不指定)、L(最后)、W(工作日)、#(第N个星期几)。本工具默认使用 Quartz 格式,也兼容标准 Cron 格式。在 Quartz 中,日和周字段不能同时指定,一个为 * 时另一个必须为 ?。

如何调试 Cron 表达式是否正确?

调试 Cron 表达式有几个方法:首先,使用本工具的"表达式含义"功能,它会将表达式翻译为中文描述,帮助确认理解是否正确;其次,查看"最近10次运行时间",检查生成的执行时间是否符合预期;第三,可以从"常用例子"中找类似的表达式作为参考;第四,对于复杂的表达式(如涉及 L、# 等特殊字符),建议逐段验证每个字段的含义。如果表达式格式有误,工具会提示解析错误。

Cron 表达式中的特殊字符 L、W、# 是什么意思?

L(Last):表示最后。在日字段中表示每月最后一天,在周字段中表示每周的最后一天(星期六/周六)。如 L 表示每月最后一天,6L 表示每月最后一个星期五。W(Weekday):表示最近的工作日(周一至周五)。如 15W 表示15号最近的工作日,如果15号是周六则提前到周五,如果是周日则推迟到下周一。#(Hash):表示第N个星期几。如 6#3 表示每月的第三个星期五(6=星期五,3=第三个)。这些特殊字符组合使用可以实现非常灵活的调度规则。

相关文章

收起使用说明
更多推荐
查看更多
HTML 预览开发工具
YAML ↔ Properties开发工具
XPath 测试开发工具
JSONPath 测试开发工具
JSON 转 Java开发工具
JSON ↔ CSV 互转开发工具
JSON ↔ XML 互转开发工具
XML 格式化开发工具