详解 Cron 表达式

时间:2025-04-28 07:23:43
  • *:表示所在时间域所有可能的值。例如,在分钟字段时表示每分钟都会执行;
  • ,:表示一个列表值。例如,在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五;
  • -:表示一个范围。例如,在小时字段中使用“10-12”,则表示从10到12点,即10,11,12点;
  • /:表示数值的增量/ 左侧表示起始值,右侧表示增量,终止值为该字段最大值。例如,在分钟字段中使用“0/15”,则表示为0,15,30,45秒,而“5/15”表示5,20,35,50秒;
  • ?:表示占位符,没有实际意义,存在于日期和星期字段中;
  • L:表示**“最后**”的意思,存在于日期和星期字段中。
    • 当出现在日期字段中,表示这个月的最后一天,如一月份的31日,四月份的30日。
    • 当单独出现在星期字段中,表示该星期的最后一天,即等价于 7 或 SAT,表示周六。
    • 当配合数值出现在星期字段中,表示该月的最后一个星期几。例如“6L”表示该月的最后一个星期五。
  • W:表示离日期最近的工作日,存在于日期字段中。
    • 例如“15W”表示离15日最近的工作日,如果15日是周六,那么结果就是14日周五;如果15日是周日,那么结果就是16日周一;如果15日是周一,那么结果就是15日周一。
    • 另外 W不能跨月。例如1日是周六,那么“1W”结果是3W周一,而不是上个月的周五。
  • C:表示“DayOfWeek”和“DayOfMonth”的意思,即每周/每月的第N天,存在于日期和星期字段中。
    • 日期字段中,“5C”表示每个月的第5天。
    • 星期字段中,“5C”表示每周的第五天,即每周四。
  • #:表示每个月的第几个星期几,存在于星期字段中。例如“3#3”表示每个月第三个的星期二,“7#5”表示每个月的第5个星期六。