Crontab 表达式计算器
Crontab表达式计算器
CRON CALCULATOR

Crontab 表达式计算器

输入Cron表达式,自动解释含义并显示未来5次执行时间。纯本地运行,数据不上传,保护隐私。

🔒 100% 本地运行 · 数据不上传服务器 · 安全隐私
解释 Cron
生成 Cron
分钟
(0-59)
小时
(0-23)
日期
(1-31)
月份
(1-12)
星期
(0-6)
每天上午 9:00 执行

常用表达式(点击使用)

* * * * * — 每分钟执行
0 * * * * — 每小时整点
0 0 * * * — 每天凌晨0点
0 9 * * * — 每天上午9点
0 9 * * 1-5 — 工作日上午9点
0 0 1 * * — 每月1号凌晨
*/5 * * * * — 每5分钟
0 0 * * 0 — 每周日凌晨

接下来 5 次执行时间

各语言获取当前时间戳代码

// JavaScript
Math.floor(Date.now() / 1000)
# Python
import time; int(time.time())
// Go
int(time.Now().Unix())

🔗 相关工具推荐

Unix 时间戳转换

时间戳日期互转

Base64 编解码

开发常用编码

JSON 格式化校验

接口调试必备

随机密码生成器

高强度安全密码

📖 Crontab表达式计算器 使用指南

为什么需要Cron表达式计算器

凌晨三点服务器日志突然不滚动了,排查半天发现crontab里把 0 3 * * * 写成了 0 3 * —— 少了一个星号,任务直接静默失效。这类问题在运维和后端开发中极其常见:Cron语法本身不算复杂,但五个字段挤在一行,用空格分隔,稍不留神就会写错位置或漏掉字段,而且出错后没有任何报错提示,任务只是不执行,排查起来很费时间。这个计算器的初衷就是让你不用手写、不用背语法,勾选几下就能生成正确的表达式,同时还能反查已有表达式的含义和未来触发时间。

这个工具能做什么

实际使用场景

给数据库配凌晨备份任务时,用计算器确认 0 2 * * * 确实是每天两点而不是两天一次。接手别人留下的crontab时,把看不懂的表达式粘进来反查含义。新同事学Linux运维时,用可视化界面理解星期字段和日期字段的「或」关系。写K8s CronJob YAML时,先在这里验证表达式再贴到配置里。

操作步骤

验证已有表达式:直接粘贴到输入框,点「解释」,下方会展示下一次触发时间和后续多次触发列表。生成新表达式:通过下拉菜单选择分钟、小时等各字段的值,勾选需要的选项,表达式会实时拼接显示。也可以直接从预设列表里挑一个接近的,再微调。

容易踩的坑

常见问题 FAQ

五个字段的位置我老是记混,有没有记忆口诀?

从左到右依次是「分 时 日 月 周」,可以记成「分时日月星」。取值范围分别是0-59、0-23、1-31、1-12、0-7(0和7都是周日)。五个字段之间用空格隔开,多写少写空格都会导致解析失败。

每周一早上8点执行的表达式怎么写?

0 8 * * 1 —— 分=0(整点),时=8,日和月用星号表示不限制,周=1代表周一。部分系统也支持用 mon 代替数字1,但纯数字写法兼容性最好。如果你写成了 0 8 1 * *,那就变成了「每月1号的8点」而不是「每周一」,字段顺序很关键。

*/5 和 0-59/5 写法不同,效果一样吗?

效果完全相同,都表示从0开始每隔5分钟触发一次,即0、5、10、15......55。*/5 是简写形式,实际等价于 0,5,10,15,20,25,30,35,40,45,50,55。大多数情况下直接用 */5 就行,更简洁。

我想每90秒执行一次,Cron能做到吗?

标准Crontab最小粒度是分钟,没法直接写90秒。变通方案是写两条规则:*/1 * * * * 每分钟执行,然后在脚本内部判断上次执行是否过了90秒。或者用Quartz等支持秒级字段的调度框架。本工具遵循标准5位格式,不涉及秒级。

日期和星期同时指定了,是「且」还是「或」?

是「或」关系。比如 0 0 1 * 1 表示「每月1号的零点」或者「每周一的零点」都会触发,不是「1号且恰好是周一」才触发。这是Cron语法里最容易误解的点,如果你需要「且」的逻辑,得在脚本里自行判断当天是否同时满足两个条件。