cron表达式详解
cron表达式详解
形如* * * * * *这种的表示时间的表达式称之为cron表达式
Cron表达式支持七个域(一般只使用6个域)
名称 合法值 特殊字符
秒 0-59 , - * /
分 0-59 , - * /
时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 , - * /
周 1-7 (1代表周日,7代表周六) , - * ?/ L C #
年 (可省略) 1970-2099 , - * /
说明
月的合法值可以使用英文单词缩写:JAN-DEC
周的合法值可以使用英文单词缩写:MON-SUN。如果采用数字:1代表周日、7代表周六。
,:表示一个列表。举例:使用在秒域中10、20、30。表示10秒、20秒、30秒
- :表示一个范围。举例:使用在秒域中1-3。表示1秒、2秒、3秒
* :表示所有合法值。举例:使用在秒域中*。表示每1秒
/ :表示递增。举例:使用在秒域中0/5。表示从第0秒开始每隔5秒
?:只能使用在日和周两个域中,表示不指定:日和周两个域如果同时指定就可能会发生冲突。举例:每个月1号的星期三。这里无法保证每个月1号都是星期三,这是不现实的,所以如果指定了每月1号那么周的域就用?代替、反之如果指定了周,那么日域就用?代替。
# :只能使用在周域中,用于指定月份中的第几周的第几天。举例:1#2表示第二个星期日(注意1是星期日)
L:只能使用在日和周两个域中,表示合法值中的最后一天。注意:周域上的最后一天是周六
w:只能使用在日域中,工作日(周一到周五)。举例:使用在日域中15w,表示离15号最近的工作日,如果15号是工作日那么结果就是15号。如果15号是星期日那么结果就是16号
Cron表达式举例
0 0 12 * * ? #每天中午12点触发
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分钟触发
————————————————
版权声明:本文为CSDN博主「勇者lin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40846669/article/details/120506822