如何创建2023年1月16日-6月15日每周五12点运行的Cron表达式
解决Cron表达式的日期区间限制问题
你的原始表达式0 0 12 ? 1-6 FRI 2023会匹配2023年1-6月的所有周五,但无法过滤1月16日之前和6月15日之后的周五。由于标准Cron(尤其是Quartz实现)中日和星期字段是逻辑或的关系,无法直接通过单个表达式同时限定日期区间和星期几,因此需要拆分为3个独立的表达式来覆盖需求:
1月16日至1月31日的周五:
0 0 12 16-31 1 FRI 2023直接指定1月的日范围为16-31,同时限定星期为周五,确保只匹配1月中旬之后的周五。
2月至5月的所有周五:
0 0 12 ? 2-5 FRI 2023这几个月不需要日期区间限制,用
?忽略日字段,直接匹配整月的周五即可。6月1日至6月15日的周五:
0 0 12 1-15 6 FRI 2023指定6月的日范围为1-15,同时限定星期为周五,过滤掉6月15日之后的周五。
将这三个表达式分别配置为定时任务,就能精准实现2023年1月16日至6月15日期间每周五12点运行的需求。
内容的提问来源于stack exchange,提问作者B. Mihai
相关产品推荐
相关产品推荐

