cron时间表达式

Cron时间表达式是一种用于指定定时任务执行时间的格式化字符串。它由6个字段组成,分别表示分钟、小时、日、月、周几和年份。每个字段可以使用通配符、数字、逗号、连字符和斜杠等符号来指定具体的值或范围。

下面是一个典型的Cron时间表达式:

* * * * * *

其中,每个星号代表一个字段,表示“每分钟、每小时、每天、每月、每周、每年”都执行一次任务。如果要指定具体的时间,可以使用数字或其他符号来替换星号。例如:

0 0 12 * * *

表示每天中午12点执行任务。具体解释如下:

第一个字段:0,表示在每小时的0分执行任务;

第二个字段:0,表示在每天的0点执行任务;

第三个字段:12,表示在每月的12日执行任务;

第四个字段:*,表示在每个月执行任务;

第五个字段:*,表示在每周执行任务;

第六个字段:*,表示在每年执行任务。

除了数字和星号,还可以使用其他符号来指定具体的时间,例如:

逗号(,):表示多个值,例如“1,3,5”表示1、3、5三个值;

连字符(-):表示范围,例如“1-5”表示1到5这个范围内的所有值;

斜杠(/):表示步长,例如“*/5”表示每隔5个单位执行一次任务。

因此,下面的Cron时间表达式:

0 0 12 1-5 */2 *

表示在每个月的1到5日中午12点,以及每隔两周的中午12点执行任务。

除了上述常用的符号外,Cron时间表达式还支持一些特殊的符号,例如:

@yearly:等同于“0 0 1 1 * *”,表示每年的1月1日0点0分执行任务;

@monthly:等同于“0 0 1 * * *”,表示每月的1日0点0分执行任务;

@weekly:等同于“0 0 * * 0 *”,表示每周日的0点0分执行任务;

@daily或@midnight:等同于“0 0 * * * *”,表示每天的0点0分执行任务;

@hourly:等同于“0 * * * * *”,表示每小时的0分执行任务。

这些特殊符号可以方便地指定常用的定时任务执行时间,避免手动编写复杂的Cron时间表达式。

需要注意的是,Cron时间表达式的精度只能到分钟级别,无法精确到秒。如果需要精确到秒级别的定时任务,可以考虑使用其他定时任务框架,例如Quartz等。