2 个不稳定版本

0.2.0 2023年8月23日
0.1.0 2023年8月23日

#247 in 值格式化

MIT 许可证

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] - 从纳秒到毫秒

无运行时依赖