⏱️ 在线Cron表达式生成器

可视化编辑定时任务Cron表达式,实时预览执行时间,中文可读化解释

纯前端本地处理,所有数据绝不上传服务器
顶部广告位 (728×90)
每天午夜执行
分钟 (Minute)0-59
小时 (Hour)0-23
日期 (Day of Month)1-31
月份 (Month)1-12
星期 (Day of Week)0-6 (日=0)

最近5次执行时间预览

常见Cron表达式速查表

Cron表达式说明
* * * * *每分钟执行
*/5 * * * *每5分钟执行
0 * * * *每小时执行
0 0 * * *每天午夜执行
0 9 * * 1每周一上午9点执行
0 0 1 * *每月1号午夜执行
0 0 * * 1-5工作日每天午夜执行
0 0,12 * * *每天午夜和中午执行
0 0 1 1 *每年1月1日午夜执行
0 0 * * 0每周日午夜执行
0 0 L * *每月最后一天午夜执行
0 0 1-7 * 1每月第一个周一执行
中部广告位 (728×90)

使用教程

本Cron表达式生成器提供可视化编辑与实时预览功能,以下是详细的使用方法:

选择格式:页面顶部提供5位(标准Linux crontab)、6位(带秒,适用于Spring/Quartz)和7位(带年)三种格式切换按钮。根据目标调度系统选择对应格式,切换后输入区域会自动调整字段数量。

可视化编辑:每个Cron字段(秒、分、时、日、月、周、年)都有独立的编辑面板,支持直接输入数值、勾选多个值以及快捷操作(全选、清除、反选)。例如,在「分钟」字段中勾选0、15、30、45即可实现每15分钟执行一次。字段下方会显示当前有效范围,输入超出范围的值会标红提示。

预设与速查:点击预设按钮可快速填入常用表达式(如「每分钟」「每天午夜」「每周一」等)。下方的Cron速查表列出了最常见的表达式及其含义,点击任意行即可加载到编辑器中。

执行时间预览:编辑完成后,预览表格会实时显示最近5次执行时间及距今剩余时间。如果表达式无效,预览区域会显示错误提示。确认无误后,点击复制按钮即可将表达式复制到剪贴板。工具还会自动生成中文可读化解释,例如将0 9 * * 1-5解释为「每周一至周五上午9点00分执行」。

应用场景

Cron表达式是定时任务调度领域的通用语言,以下是几个核心的应用场景:

Linux系统运维:在Linux/Unix服务器上,crontab是管理定时任务的标准工具。运维人员使用Cron表达式配置日志轮转、数据备份脚本、系统监控检查、定时清理临时文件等周期性任务。例如0 2 * * *表示每天凌晨2点执行备份。

后端服务开发:Spring框架的@Scheduled注解、Quartz调度器、Elastic-Job等任务调度框架均使用Cron表达式定义执行周期。开发者常需要精确控制任务执行时间,如0 0 9 * * MON表示每周一上午9点生成周报,0 0 0 1 * ?表示每月1号零点执行月结。

云原生与DevOps:Kubernetes CronJob使用Cron表达式调度集群中的定时任务,如定期同步数据、清理过期资源。CI/CD流水线(如GitLab CI的schedule管道、Jenkins定时构建)也依赖Cron表达式触发自动化流程。

扩展知识

Cron的起源:Cron名称源自希腊语「Chronos」(时间),最早由贝尔实验室于1975年在Unix V7中引入。最初仅支持5字段格式,随着Spring、Quartz等框架的发展,逐渐扩展出6位(秒)和7位(年)格式。

特殊字符详解:除了基本的*(任意)、,(列表)、-(范围)、/(步长)外,部分实现还支持?(不指定,用于日期和星期互斥)、L(最后,如0 0 L * *表示每月最后一天)、W(最近工作日)、#(第几个,如0 0 0 ? * 2#1表示每月第一个周一)等高级特性。

实现差异:不同系统对Cron的解析存在差异。Linux crontab使用5字段,日期和星期为「或」关系;Quartz使用6-7字段,日期和星期为「与」关系(需用?占位);Spring的Cron序列化器要求6字段且星期字段0和7均表示周日。建议根据目标系统选择对应格式并查阅文档。

常见问题 (FAQ)

Cron表达式是什么?

Cron表达式是一种用于定义定时任务执行时间的字符串格式,广泛应用于Linux crontab、Spring Scheduler、Quartz、Kubernetes CronJob等系统中。它由5个或6个字段组成,分别表示分钟、小时、日期、月份、星期(以及可选的秒和年)。

Cron表达式各字段的含义是什么?

标准5字段Cron格式为「分 时 日 月 周」。6位格式在最前面增加了「秒」字段。7位格式在最后增加了「年」字段。各字段可用特殊字符包括:*(任意)、,(列表)、-(范围)、/(步长)。例如「*/5」表示每5个单位执行一次。

如何预览Cron表达式的执行时间?

在本工具中输入或编辑Cron表达式后,下方的「最近5次执行时间预览」区域会实时显示接下来的5次触发时间,帮助您确认表达式是否符合预期。每个执行时间旁边还显示了距离现在的剩余时间。

6位和5位Cron表达式有什么区别?

5位Cron是Unix/Linux系统的标准格式(分 时 日 月 周)。6位Cron在最前面增加了「秒」字段(秒 分 时 日 月 周),常见于Spring框架和Quartz调度器中。如果您使用的系统不支持秒字段,请选择5位格式。

为什么星期和日期同时设置时可能不按预期执行?

大多数Cron实现中,日期(Day of Month)和星期(Day of Week)字段是「或」关系而非「与」关系。也就是说,只要满足其中一个条件就会执行。如果需要同时满足,某些系统(如Quartz)支持用「?」占位符来实现。建议尽量只设置其中一个字段,另一个用 * 表示。

Cron支持的最小时间间隔是多少?

标准5字段Cron的最小间隔是1分钟。使用6字段格式(带秒)时,最小间隔可以达到1秒。但实际调度系统的最小间隔还受限于调度器本身的实现,例如Linux crontab最小支持到分钟级别,而Java Quartz和Spring Task支持秒级调度。

底部广告位 (728×90)