恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Cron表达式实战:Unix Cron vs Quartz Cron vs Spring Cron三种格式差异全解析

  • 首页
  • 资讯中心
  • /
  • Cron表达式实战:Unix Cron vs Quartz Cron vs Spring Cron三种格式差异全解析

相关资讯

STM32V8芯片型号不存在?一文讲透STM32命名规则与datasheet查找方法 2026/8/31 22:14:40
STM32WLE5CCU6 LoRaWAN FUOTA移植实战:从外置SX1262到单芯片的踩坑指南 2026/8/31 22:14:40
STM32 Debug Authentication Discover失败排查 2026/8/31 22:14:40

最新资讯

豆包 LeetCode 19. 删除链表的倒数第 N 个结点 Python3实现
RAG、GraphRAG、知识图谱,深度解析企业知识库应用大年核心技术!
DDR4内存从原理到实战:时序、IDD与PCB布局布线全解析
晶体管从入门到实战:BJT开关、放大与选型避坑指南
查找的基本概念(概念、查找算法的效率评价)
AI EDA数据挖掘:从海量数据里挖出沉默的良率杀手

今日推荐

MCU无DAC如何用定时器+DMA 2D输出高保真任意波形
Cortex-M3 Flash下载失败?从编程错误标志到供电瞬态排查
STM32 TouchGFX屏幕切换Transition优化:原理、配置与排障实战

本周热门

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析
数字电路时序基石:深入理解建立时间与保持时间
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Cron表达式实战:Unix Cron vs Quartz Cron vs Spring Cron三种格式差异全解析

发布时间:2026/8/31 22:19:41
Cron表达式实战:Unix Cron vs Quartz Cron vs Spring Cron三种格式差异全解析 同样是每天 9:30 执行在 Linux crontab、Quartz 和 Spring Boot 里的写法各不相同。写错了不报错任务就是不对——这种 bug 最难查。本文用对照表和代码实例讲透三种 Cron 格式的差异。三种 Cron 的来历格式起源字段数典型场景Unix CronUnix cron 守护进程5 段Linux crontab、AWS EventBridgeQuartz CronQuartz Scheduler6-7 段Java 企业级调度框架Spring CronSpring Framework6 段Spring BootScheduled字段结构对比Unix: 分 时 日 月 周 Quartz: 秒 分 时 日 月 周 [年] Spring: 秒 分 时 日 月 周Quartz 和 Spring 比 Unix 多了秒字段最左边Quartz 还可选支持年字段最右边。差异对照表字段定义字段Unix CronQuartz CronSpring Cron秒无0-590-59分0-590-590-59时0-230-230-23日1-311-311-31月1-121-12 / JAN-DEC1-12 / JAN-DEC周0-61-70-6 / 1-7年无可选1970-2099无周字段编码差异这是最容易踩坑的地方值Unix CronQuartz CronSpring Cron0周日无效1-7周日1周一周日周一7无效0-6周六周日Unix Cron0周日1周一…6周六。Quartz Cron1周日2周一…7周六。Spring Cron0 和 7 都表示周日1周一…6周六。同样写1Unix 和 Spring 是周一Quartz 是周日。从 Quartz 迁移到 Spring 时周字段的数字全部要调整。特殊字符支持字符Unix CronQuartz CronSpring Cron*支持支持支持,支持支持支持-支持支持支持/支持支持支持?不需要必须用必须用L不支持支持支持W不支持支持支持#不支持支持支持英文缩写不支持支持 (MON-SUN)支持 (MON-SUN)宏不支持不支持支持 (daily 等)?的使用规则Unix Cron 不需要?日和周可以同时为*# Unix crontab — 合法* * * * *00* * *Quartz 和 Spring 必须用?日和周不能同时为*// Quartz/Spring — 合法000**?// 每天000?*MON// 每周一// Quartz/Spring — 非法会报错000***// 日和周不能同时为 *同一需求的三种写法每天 9:30 执行# Unix crontab309* * * /path/to/script.sh// QuartzTriggertriggerTriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(0 30 9 * * ?)).build();// Spring BootScheduled(cron0 30 9 * * ?)publicvoidexecute(){}注意 Quartz 和 Spring 多了秒字段0表示第 0 秒。Unix 没有秒字段直接从分开始。工作日 9 点执行# Unix — 1-5 表示周一到周五09* *1-5 /path/to/script.sh// Quartz — 2-6 表示周一到周五1周日Scheduled(cron0 0 9 ? * MON-FRI)// Spring — MON-FRI 缩写或 1-5Scheduled(cron0 0 9 ? * MON-FRI)Quartz 周字段用数字时 2-6 才是周一到周五1周日。用英文缩写 MON-FRI 可以避免歧义推荐用缩写。每月最后一天执行# Unix — 不支持 L需要 shell 脚本判断0028-31 * *[$(date%d)$(date-d1 day%d)]/path/to/script.sh// Quartz/Spring — 直接用 LScheduled(cron0 0 0 L * ?)Unix Cron 不支持L只能在 28-31 号执行脚本脚本内判断明天是否是 1 号。Quartz 和 Spring 直接用L就行。Spring 宏表达式Spring 6.0 支持宏表达式简化常用配置// 宏等价写法Scheduled(cronhourly)// 等价于 0 0 * * * *Scheduled(crondaily)// 等价于 0 0 0 * * *Scheduled(cronweekly)// 等价于 0 0 0 * * 0Scheduled(cronmonthly)// 等价于 0 0 0 1 * *Scheduled(cronyearly)// 等价于 0 0 0 1 1 *宏表达式是 Spring 特有的Quartz 和 Unix Cron 不支持。使用宏时不需要考虑字段数和?规则简洁但灵活性有限。迁移注意事项从 Unix 迁移到 Spring前面补秒字段0日和周字段如果同时为*其中一个改成?周字段数字编码一致0周日无需调整从 Unix 迁移到 Quartz前面补秒字段0日和周字段同时为*时其中一个改成?周字段数字编码要调整Unix 的 0→Quartz 的 1Unix 的 1→Quartz 的 2以此类推推荐用英文缩写 MON-SUN 避免歧义从 Quartz 迁移到 Spring秒字段保留?规则一致周字段数字编码要调整Quartz 的 1→Spring 的 0Quartz 的 2→Spring 的 1以此类推推荐用英文缩写避免歧义在线验证迁移 Cron 表达式时需要确认转换后的表达式语义不变。可以在 盘子工具站 Cron 表达式工具 上做这种验证——工具支持 5 段和 6 段格式切换输入同一个表达式切换格式后观察字段含义提示的变化。比如输入0 30 9 * * ?6 段中文解释显示每天 9:30 执行切换到 5 段模式输入30 9 * * *确认解释一致。触发时间预览也能帮你验证——5 段和 6 段的触发时间应该完全相同。需要特别注意的是周字段的编码差异工具中周字段的取值范围提示0-6 还是 1-7会随格式切换自动更新帮你直观看到两种格式的区别。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号