2 个不稳定版本
0.2.0 | 2021年4月19日 |
---|---|
0.1.0 | 2021年4月15日 |
#486 在 日期和时间
68KB
1.5K SLoC
创建和消费 Cron 表达式的库。它支持一些扩展语法。
概览
Cron 表达式由五个字段组成,代表当前时间的不同部分。每个字段定义了一组值,表示表达式何时匹配。当 所有 字段都匹配时,表达式匹配;当任何值匹配时,字段匹配。
一个简单的匹配所有时间的 Cron 表达式看起来像 * * * * *
。它为每个字段指定单个值,每个值都是通配符。字段按以下顺序出现:1 分钟 1 小时 1 月中的某一天 1 月 1 周中的某一天
参考表达式
表达式 | 描述 |
---|---|
* * * * * |
匹配所有时间 |
* 8-17 * *mon-fri |
匹配周一至周五的上午 8 点至下午 5 点 |
* *L3,6,9,12 * |
匹配每个季度的最后一天 |
30 1 * * * |
每天凌晨 1:30 |
可能性
可以为所有字段提供四种标准值
- 通配符 (
*
)- 此值匹配所有时间
- 范围 (
5-10
)- 这是一个表达式匹配时的 包含 范围
- 单个 (
10
)- 这代表表达式匹配时的单个值
- 步长范围 (
*/2
)- 这代表表达式匹配时的一组值
- 它从指定字段的最低值开始,以步长递增,直到覆盖整个范围
月份中的某一天字段有两个特殊值可以提供
- 最近的星期几 (
15W
)- 此值匹配提供的月份中的最近星期几
- 如果该天是星期六,则匹配前一天的星期五
- 如果该天是星期日,则匹配下一天的星期一
- 月的最后一天 (
L
或L-5
)- 此值匹配月底的最后一天
- 它可以选择性地偏移一些天数以匹配“X天前月底”
星期几字段有两个特殊值可以提供
- 星期的第N天(
3#2
)- 此值与提供的星期中的特定出现相匹配。
- 在示例值中,它与星期的第
2
次出现相匹配,即星期的第3
天(星期三)
- 星期的最后一天(
2L
)- 此值与提供的星期的最后出现相匹配。
此外,月份和星期字段可以提供数值或三位字母别名。
月份
别名 | 值 |
---|---|
JAN | 1 |
FEB | 2 |
MAR | 3 |
APR | 4 |
MAY | 5 |
JUN | 6 |
JUL | 7 |
AUG | 8 |
SEP | 9 |
OCT | 10 |
NOV | 11 |
DEC | 12 |
星期
别名 | 值 |
---|---|
SUN | 0 |
MON | 1 |
TUE | 2 |
WED | 3 |
THU | 4 |
FRI | 5 |
SAT | 6 |
依赖
~3.5–5MB
~88K SLoC