7个不稳定版本 (3个破坏性更新)
0.4.2 | 2021年11月8日 |
---|---|
0.4.1 | 2021年11月8日 |
0.4.0 | 2021年9月18日 |
0.3.0 | 2021年7月7日 |
0.1.0 | 2020年7月4日 |
#219 在 日期和时间
被 2 个包 使用
31KB
660 行
HTP
进行中 Human Time Parser
此库使用 pest 进行解析。
示例
use chrono::{Utc, TimeZone};
use htp::parse;
let now = Utc.datetime_from_str("2020-12-24T23:45:00", "%Y-%m-%dT%H:%M:%S").unwrap();
let expected = Utc.datetime_from_str("2020-12-18T19:43:00", "%Y-%m-%dT%H:%M:%S").unwrap();
let datetime = parse("last friday at 19:43", now).unwrap();
assert_eq!(datetime, expected);
类似包
为什么?
调整我在 rust 时间跟踪工具 中解析和解释时间的方式。
偶尔写一下解析器很有趣,pest 真的很棒。
它可以解析哪些日期格式?
请参见 time_clue 语法规则。
一些示例
4 min ago
,4 h ago
,1 week ago
,in 2 hours
,in 1 month
last friday at 19
,monday at 6 am
7
,7am
,7pm
,7:30
,19:43:00
now
,yesterday
,today
,friday
2020-12-25T19:43:00
它还支持有趣的空格输入,例如
4 min ago
可以使用 HTP
尝试以下命令:cargo run --example time_parser
示例
cargo run --example time_parser last friday at 6
输出
2020-07-03T06:00:00+02:00
由于 pest,它还提供了有意义的错误
示例
cargo run --example time_parser last friday at
输出
--> 1:15
|
1 | last friday at
| ^---
|
= expected hms
变更日志
请参阅 CHANGELOG 了解发布历史。
依赖关系
~4MB
~76K SLoC