You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写每月第一个周三上午9点执行的Cron表达式?

实现每月第一个周三上午9点的Cron表达式方案

当然可以实现,具体写法取决于你使用的Cron调度工具:

支持扩展语法的调度器(如Quartz、Spring Scheduler)

这类工具支持增强的周字段语法,直接用下面的表达式就能精准实现需求:

0 9 ? * 3#1

字段说明:

  • 0:整点0分
  • 9:上午9点
  • ?:忽略日字段(避免和周字段的规则冲突)
  • *:所有月份都生效
  • 3#1:表示每月的第1个周三(注:部分实现中周日为0,周一为1,以此类推周三为3)

标准Unix/Linux Cron(仅基础语法)

标准Cron的日和周字段是逻辑或关系,没法用单一基础表达式直接实现。可以用两种变通方法:

方法1:结合脚本判断

保留你原来的每周三执行的表达式0 9 * * 3,然后在任务脚本开头加一段判断,只有当天是当月前7天时才执行任务:

# Bash脚本示例判断逻辑
if [ $(date +%d) -le 7 ]; then
    # 这里写你的任务执行代码
    echo "执行每月第一个周三的任务"
fi

方法2:多表达式匹配(繁琐但直接)

由于每月第一个周三肯定在1-7号之间,你可以为1-7号分别设置表达式,仅当当天是周三时执行:

0 9 1 * * [ $(date +%u) -eq 3 ]
0 9 2 * * [ $(date +%u) -eq 3 ]
0 9 3 * * [ $(date +%u) -eq 3 ]
0 9 4 * * [ $(date +%u) -eq 3 ]
0 9 5 * * [ $(date +%u) -eq 3 ]
0 9 6 * * [ $(date +%u) -eq 3 ]
0 9 7 * * [ $(date +%u) -eq 3 ]

不过这种写法比较冗余,推荐用脚本判断的方式。

内容的提问来源于stack exchange,提问作者gduverger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:55:20