corn表达式详解

本文详细介绍了cron表达式,其可写6位。阐述了特殊字符含义,如*表示所有值,?表示不指定值等。还给出多个示例,像“0 15 10? * *”表示每天上午10:15触发,帮助理解cron表达式的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cornexpression表达式详解:

1、格式

cron一共有7位,但是最后一位是年,可以留空,所以我们可以写6位:

字段允许值允许特殊字符
0-59, - * /
0-59, - * /
小时0-23, - * /
1-31, - * ? / L W C
1-12或JAN-DEC, - * /
1-7或SUN-SAT, - * ? / L C #
留空或1970-2099, - * /

2、特殊字符说明

*:表示所有值,在分钟里表示每一分钟触发。在小时,日期,月份等里面表示每一小时,每一日,每一月。

?:表示不指定值。表示不关心当前位置设置的值。 比如不关心是周几,则周的位置填写?。  主要是由于日期跟周是有重复的所以两者必须有一者设置为?

-:表示区间。小时设置为10-12表示10,11,12点均会触发。

,:表示多个值。 小时设置成10,12表示10点和12点会触发。

/:表示递增触发。 5/15表示从第5秒开始,每隔15秒触发。

L:表示最后的意思。 日上表示最后一天。星期上表示星期六或7。 L前加数据,表示该数据的最后一个。 星期上设置6L表示最后一个星期五。 6表示星期五

W:表示离指定日期最近的工作日触发。15W离该月15号最近的工作日触发。

C:允许在日期域和星期域出现。这个字符依靠一个指定的“日历”。也就是说这个表达式的值依赖于相关的“日历”的计算结果,如果没有“日历”关联,则等价于所有包含的“日历”。如:日期域是“5C”表示关联“日历”中第一天,或者这个月开始的第一天的后5天。星期域是“1C”表示关联“日历”中第一天,或者星期的第一天的后1天,也就是周日的后一天(周一)

#:表示每月的第几个周几。 6#3表示该月的第三个周五。

3、示例

“0 15 10 ? * *” :每天上午10:15触发

“0 15 10 * * ?” :每天上午10:15触发

“0 15 10 * * ? *” : 每天上午10:15触发

“0 15 10 * * ? 2005” :2005年的每天上午10:15触发

“0 * 14 * * ?” :在每天下午2点到下午2:59期间的每1分钟触发

“0 0/5 14 * * ?” : 在每天下午2点到下午2:55期间的每5分钟触发

“0 0/5 14,18 * * ?” : 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

“0 0-5 14 * * ?” :在每天下午2点到下午2:05期间的每1分钟触发

“0 10,44 14 ? 3 WED” :每年三月的星期三的下午2:10和2:44触发

“0 15 10 ? * MON-FRI” : 周一至周五的上午10:15触发

“0 15 10 15 * ?” :每月15日上午10:15触发

“0 15 10 L * ?” :每月最后一日的上午10:15触发

“0 15 10 ? * 6L” :每月的最后一个星期五上午10:15触发

“0 15 10 ? * 6L 2002-2005” :2002年至2005年的每月的最后一个星期五上午10:15触发

“0 15 10 ? * 6#3” :每月的第三个星期五上午10:15触发

参考:
https://blog.youkuaiyun.com/u011870547/article/details/90072426
https://www.cnblogs.com/knowledgesea/p/4705796.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值