网上搜索一下cron表达式,会出来很多,但是大部分也就把几个星号放上去,配了几个示例,还需要一番研究。不但耽误时间,还容易理解错误。

其实把下面这2个问题理解一下,立马就懂了。

1、cron表达式到底几位

其实cron表达式一共有7位,最后1位是指定年份的,很多时候不需要指定,所以经常看到的都是6位的。

// 6位的
0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
// 7位的
0 15 10 ? * 6L 2002-2005 表示2002年至2005年的每月的最后一个星期五上午10:15触发 

每个位的意思是固定的(可能偶尔会看到对不上的,鄙视一下不按顺序写的),按顺序依次为

  1. 秒(0~59)
  2. 分钟(0~59)
  3. 小时(0~23)
  4. 天(月)(0~31,但是你需要考虑你月的天数)
  5. 月(0~11)
  6. 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
  7. 年份(1970-2099)

2、?啥意思

?表示不指定,而且只能用在4和6位。4和6位互斥,比如如果指定4位为*,则6为就要指定?,反之亦然。

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

至于 - ,/这些通俗易懂的,一看就知道啥意思了,不需要多解释了。