一、Cron表达式主要有两种格式(每种软件可能不一样):
(1)秒 分 小时 日期 月份 星期几
(2)秒 分 小时 日期 月份 星期几 年份
二、各自字段允许的字符及值范围
(1)秒(0~59)、分(0~59)、小时(0~23)、月份(1~12)、年份(可选字段),这五个字段允许 , - * / 四个字符。
(2)日期(1~31,需考虑月份的天数),这个字段允许 ,- * ? / L W C 八个字符。
(3)星期允许 ,这个字段允许 - * ? / L C # 八个字符。
三、特殊字符的含义
(1)*:表示任意值。
(2)?:只用在日期和星期中,若指定星期则日期只能用?,反过来,若指定日期则星期只能用?,否则这两个可能存在冲突。
(3)-:表示范围。
(4)/:表示起始时间开始触发,然后每隔固定时间触发一次。
(5),:表示列出枚举值。
(6)L:表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。
(7)W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。
(8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。
(9)#:用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三。
四、举几个栗子
(1)0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
(2)0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
(3)0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
五、验证Cron表达式
在线工具:灰机直达