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