2 个不稳定版本
0.2.0 | 2023年8月23日 |
---|---|
0.1.0 | 2023年8月23日 |
#247 in 值格式化
21KB
497 行
eternity-rs
回答“那花了多长时间?”的问题,格式化后可由人类和机器人读取。
动机
Rust 没有为 Display
实现对 std::time::Duration
的实现。即使实现了,也不会有一个通用的格式。人类可读的格式对机器人来说难以解析,反之亦然。这个 crate 提供了扩展特质,以支持大多数情况下的时间格式化。
简单示例
use std::time::Duration;
use eternity_rs::Eternity;
let duration = Duration::from_secs(3672);
println!("{}", &duration.humanize());
=> 1h 1m 12s
println!("{}", &duration.robotize());
=> 0d 1h 1m 12s 0ms
let duration = Duration::from_secs(3622);
println!("{}", &duration.humanize());
=> 1h 22s
println!("{}", &duration.robotize());
=> 0d 1h 0m 22s 0ms
let duration = Duration::from_secs(127);
println!("{}", &duration.humanize());
=> 2m 7s
println!("{}", &duration.robotize());
=> 0d 0h 2m 7s 0ms
lib.rs
:
人类和机器人可读的时间
提供对 std::time::Duration
的人类和机器人可读格式化。有几个扩展特质可供选择。许多限制报告的时间周期以保持简洁。但您也可以使用 [Eternity] 特质进行通用目的。
时间周期
- [Eternity] - 通用目的,从毫秒到天
- [MediumEternity] - 从秒到小时
- [ShortEternity] - 从毫秒到分钟
- [NanoEternity] - 从纳秒到毫秒