Cron 表达式是一个字符串,分为6或7个域,每一个域代表1个含义
Cron 有以下两种语法格式

  1. seconds Minutes Hours Day Month week Year
  2. seconds Minutes Hours Day Month week

结构:Cron 从左到右(用空格隔开)
秒 分 小时 月份中的日期 月份 星期中的日期 年份

各字段的含义

  1. 秒 :值域【0-59】;允许特殊字符【,- * / 】 ;
  2. 分钟:值域【0-59】;允许特殊字符【,- * / 】 ;
  3. 小时:值域【0-23】;允许特殊字符【,- * / 】 ;
  4. 日:值域【1-31】;允许特殊字符【,- * / L W C】 ;
  5. 月: 值域【1-12】;允许特殊字符【,- * /】 ;
  6. 星期: 值域【1-7(国外星期一为中国的周日)】;允许特殊字符【,- * ? / L C #】;
  7. 年(可选):值域【1970-2099】;允许特殊字符【,- * /】;

Cron 表达式的时间字段除允许数值外,还可以使用一些特殊字符,提供列表,范围,通配符等功能,细说如下

星号():可用在所有字段中,表示对应时间域的每一个时刻,例如( * )在分钟字段时,表示每分钟
问号(?):该字符只在日期和星期字段中使用,它通常指定为无意义的值,相当于占位符;
减号(-):表达一个范围。如在小时字段中使用“10-12”表示从10到12点,即10,11,12;
逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRl”,则表示星期一,星期三,星期五;
斜杠(/): x/y 表达 一个等步长序列,x为起始值,y为增量步长值,如在字段中使用0/15,则0,15,30,45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用
/y,它等同于0/y
L : 该字符只在日期和星期字段中使用,代表“Last” 意思。但它在两个字段中意思不同,L在日期字段中,表示这个月份的最后一天,如1月的31号,瑞年二月的28号;如果L用在星期中,则表示星期六,等同于7,但是如果L出现在星期字段里,而且前面有一个数值x,则表示这个月的最后x天,例如:6L表示该月的最后星期五;
W: 该字符只能出现在日期字段里,是对前导日期的修饰,表示该日期最近的工作日,例如15W 表示离该月15号最近的工作日,如果改约15号是星期六,则匹配14号星期五;如果15日是星期日,则匹配16号星期一;如果15号是星期二,那结果就是15号星期二,但必须注意关联匹配日期不能够跨月,如你指定1W,如果1号是星期六,结果匹配的是3号的星期一,而非上个月的最后的那天,W字符串只能指定单一日期,而不能指定日期范围;
LW组合:在日期字段可以组合使用LW,它的意思是当月的最后一个工作日。
井号(#):该字符只能在星期字段中使用,表示当月某个工作日,如6#3表示当月的第三个星期五(6表示星期五,#3表示抢当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发;
C: 该字段只在日期和星期字段中使用,代表“Calendar”的意思,它的意思是计划所关联的日期,如果日期没有被关联,则相当于日期中所有日期,例如5C在日期字段中就相当于日历5日以后的第一天,1C在星期字段中相当于星期日的第一天。

Cron表达式对特殊字符的大小写不敏感。对代表星期的缩写英文大小写也不敏感。

例子:

@Scheduled(cron="0 0 1 1 1 ?")//每年1月的1号的1:00:00执行1次
@Scheduled(cron="0 0 1 1 1,6 ?")//1月和六月的1号的1:00:00
@Scheduled(cron="0 0 1 1 1,4,7,10 ?")//每个季度的第一个月的一号1:00:00(1)0 0 2 1 * ? *   表示在每月的1日的凌晨2点调整任务(2)0 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业(3)0 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作(4)0 0 10,14,16 * * ?   每天上午10点,下午2点,4点 (5)0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时 (6)0 0 12 ? * WED    表示每个星期三中午12点 (7)0 0 12 * * ?   每天中午12点触发 (8)0 15 10 ? * *    每天上午10:15触发 (9)0 15 10 * * ?     每天上午10:15触发 (10)0 15 10 * * ? *    每天上午10:15触发 (11)0 15 10 * * ? 2005    2005年的每天上午10:15触发 (12)0 * 14 * * ?     在每天下午2点到下午2:59期间的每1分钟触发 (13)0 0/5 14 * * ?    在每天下午2点到下午2:55期间的每5分钟触发 (14)0 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 (15)0 0-5 14 * * ?    在每天下午2点到下午2:05期间的每1分钟触发 (16)0 10,44 14 ? 3 WED    每年三月的星期三的下午2:10和2:44触发 (17)0 15 10 ? * MON-FRI    周一至周五的上午10:15触发 (18)0 15 10 15 * ?    每月15日上午10:15触发 (19)0 15 10 L * ?    每月最后一日的上午10:15触发 (20)0 15 10 ? * 6L    每月的最后一个星期五上午10:15触发 (21)0 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一个星期五上午10:15触发 (22)0 15 10 ? * 6#3   每月的第三个星期五上午10:15触发

Cron 定时任务表达式相关推荐

  1. @Scheduled cron 定时任务表达式含义用法及* ?的区别

    ** @Scheduled cron 定时任务表达式含义用法及* ?的区别 ** cron格式:[秒数][分钟][小时][日期][月份][星期几][年份(可省略)] 关于[日期]与[星期几]的说明: ...

  2. quartz/Cron/Crontab表达式在线生成工具

    cron表达式在指定定时任务时具有非常强的灵活性,可以满足日常遇到的各种定时规则.但是其规则设置起来还是有一定的难度,特别是不经常使用的时候,更容易忘记写法.通过图形化的方式进行配置,并且可以生成规则 ...

  3. Oracle 解析cron定时表达式

    Oracle 解析cron表达式 1.概述 2.步骤 2.1 规范cron表达式 2.1.1 格式详解 2.1.2 规范cron字符串 2.2 根据空格切割cron字符串 2.3 根据','分割每一个 ...

  4. linux cron 定时任务无效 /var/spool/cron/xxx

    大家好,我是烤鸭: 关于配置了 /var/spool/cron/root 表达式后无效. vi /var/spool/cron/root root中内容 0 1/1 * * * ? sh /opt/w ...

  5. Cron 定时任务 时间设置

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ...

  6. java 获取当前hhmm_java 判断当前时间符合cron时间表达式_J2SE_Java

    public class OrderExceptionQuartz { private static Logger logger = LoggerFactory.getLogger(OrderExce ...

  7. cron定时任务和No MTA installed, discarding output错误处理

    陈拓 2021/09/09-2020/09/12 0. 我的系统 lsb_release -a 1. 设置cron 为了定时执行程序启用cron. 我的项目需求为每5分钟执行一次hkCapJpeg1. ...

  8. 定时任务表达式:汇总

    前言 汇总每天定时任务表达式: 定时任务表达式 每天凌晨bai2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ? 例1:每隔5秒执行一次:*/5 * * * * ? 例2:每隔5分 ...

  9. 定时任务@Scheduled(cron = “* * * * * *?“) 表达式详解

    cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} cron表达式各占位符解释: {秒数}{分钟} ==> 允许值范围: 0~59 ,不允许为空 ...

  10. c语言解析cron文件,Cron(表达式)详解

    常用定时任务框架有Quartz和Spring提供的@Schedule注解,两者都使用了Cron表达式,下面详细讲解下Cron的语法规则: Cron支持7个域,分别是:秒 分 时 日 月 周 年,其中年 ...

最新文章

  1. Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...): singular fit encountered
  2. 使用DotfuscatorPro_4.9对软件dll库进行加密
  3. 关于页面加载的方法收集
  4. Heartbeat,来点真的
  5. MySql安装后在服务管理器里边找不到MySql服务项的解决办法(win10)
  6. 一次问卷产品的MVP设计
  7. PyTorch教程(八):常见激活函数与Loss的梯度
  8. php用cdn打不开,开启 CDN 后 wordpress 后台打不开的解决办法
  9. Python监听键盘和鼠标事件,并发送内容至邮箱!
  10. 移动平台深度神经网络实战
  11. 程序员们之间的“鄙视链”,程序员底之间无声的战争
  12. 《重构-改善既有代码的设计》——读后总结
  13. vue实现动态改变title
  14. python编程入门指南-Python入门学习指南
  15. 《那些年啊,那些事——一个程序员的奋斗史》八
  16. angularUI之accordion的用法
  17. 显卡a卡和n卡的区别
  18. 基于LSTM的IMDB电影评论情感分析
  19. DevC++ 调试的时候闪退解决办法
  20. 实验室安全与危化品信息管理平台建设

热门文章

  1. matlab 神经网路,matlab神经网络的工程实例(超级详细)
  2. qnx 镜像文件_QNX工控机系统恢复工具-赤兔QNX工控机系统恢复软件下载10.2官方版-西西软件下载...
  3. PopClip 能让像苹果电脑像 iOS 一样选中文字后弹出搜索、复制、粘贴等选项
  4. 国军标要求的产品“六性”到底是什么?
  5. 嵌入式linux快速入门
  6. 简记_高频变压器基础知识(一)
  7. xshell 5安装教程
  8. id2021中文直装版 v16.0附安装教程及软件特点
  9. 微信支付基于图计算的反欺诈实践
  10. 使用A4纸张黑白打印双面打印多少钱一张