16 个版本
使用旧的 Rust 2015
0.4.2 | 2023 年 9 月 18 日 |
---|---|
0.4.1 | 2023 年 1 月 26 日 |
0.4.0 | 2022 年 12 月 10 日 |
0.3.1 | 2022 年 2 月 24 日 |
0.0.2 | 2017 年 9 月 21 日 |
在 日期和时间 中排名第 11
每月下载量 17,883
用于 21 个 Crates(直接使用 19 个)
71KB
1.5K SLoC
timeago
在 Rust 中,将持续时间格式化为字符串,如 "1 小时前" 或 "01小时"。
目前它不考虑日历,并假设每个月大约有 30.4 天。
将此类字符串解析回 Duration
不在本库范围内。也许可以查看 chrono-english
库。
在不启用 isolang
功能的情况下,它支持 Rust 版本 1.24 及以上。
API
简化后的 API 摘录(伪代码)
pub struct Formatter<L : Language = English>{...}
impl Formatter {
pub fn new() -> Formatter<English>;
pub fn with_language(l: Language) -> Self;
pub fn num_items(&mut self, x: usize) -> &mut Self;
pub fn max_unit(&mut self, x: TimeUnit) -> &mut Self;
pub fn min_unit(&mut self, x: TimeUnit) -> &mut Self;
pub fn too_low(&mut self, x: &'static str) -> &mut Self;
pub fn too_high(&mut self, x: &'static str) -> &mut Self;
pub fn max_duration(&mut self, x: Duration) -> &mut Self;
pub fn ago(&mut self, x: &'static str) -> &mut Self;
pub fn convert(&self, d: Duration) -> String;
pub fn convert_chrono(&self, from: chrono::DateTime, to: chrono::DateTime) -> String;
}
pub fn from_isolang(x : isolang::Language) -> Option<Box<Language>>;
pub fn format_5chars(d: Duration) -> String;
可以从 isolang::Language 构建一个 Language
。
翻译
- 英语
- 俄语
- 法语
- 葡萄牙语(贡献)
- 德语(未检查)
- 白俄罗斯语(未检查)
- 波兰语(未检查)
- 西班牙语(贡献)
- 中文(贡献)
- 罗马尼亚语(贡献)
- 瑞典语(贡献)
- 土耳其语(贡献)
- 日语(贡献)
- 丹麦语(贡献)
- 意大利语(贡献)
- 乌克兰语(贡献)
如果您检查了一些语言并确认它们是正确的,请提交一个 pull request 来删除列表上方的 "(unchecked)" 或 "(contributed)"。
工具
有一个辅助命令行工具,它允许在添加新翻译时更容易地进行实验。
$ cargo run --features isolang en
Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
Running `target/debug/timeago en`
60
1 minute ago
7200
2 hours ago
另请参阅
- chrono-humanize
- compound_duration - 将
Duration
分解为周/天/分钟等部分
依赖项
~4MB
~117K SLoC