表达式:
秒 分 时 日期 月 星期 年份(可为空)
其中,各字段的取值范围如下:
字段名 | 允许的值 | 允许的特殊字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
时 | 0-23 | , - * / |
日期 | 1-31 | , - * ? / L W |
月 | 1-12 或者 JAN-DEC | , - * / |
星期 | 0-6 或者 SUN-SAT | , - * ? / L # |
各字段允许的特殊字符的含义如下:
*
:表示所有值。例如,*在minute字段中表示“每分钟”。
-
:表示一个范围。例如,10-12在hour字段中表示“10点到12点”。
,
:表示多个值。例如,MON,WED,FRI在dayOfWeek字段中表示“周一、周三和周五”。
/
:表示步长。例如,0/5在second字段中表示“每隔5秒钟”。
?
:仅在dayOfMonth和dayOfWeek中使用,表示不指定值。
L
:仅在dayOfMonth和dayOfWeek中使用,表示最后一天。例如,L在dayOfMonth字段中表示“每月最后一天”。
W
:仅在dayOfMonth中使用,表示最近的工作日(距离指定日期最近的一天,且是工作日)。例如,15W在dayOfMonth字段中表示“本月15号最近的工作日”。
#
:仅在dayOfWeek中使用,表示第几个星期。例如,2#3在dayOfWeek字段中表示“本月第三个周二”。
以下是一些常用的cron表达式:
0 0/5 * * * ?
:每隔5分钟执行一次。
0 0 0 * * ?
:每天0点执行一次。
0 0 0 ? * SUN
:每个星期天0点执行一次。
0 0 0 ? * MON-FRI
:每个工作日0点执行一次。
0 0 0 ? * 6L
:每个月最后一个周五0点执行一次。
0 0 0 ? * 6#3
:每个月第三个周五0点执行一次。