21 个版本 (8 个稳定版)
1.4.0 | 2020 年 5 月 2 日 |
---|---|
1.2.1 | 2020 年 4 月 28 日 |
1.1.1 | 2020 年 3 月 28 日 |
0.7.4 | 2020 年 3 月 24 日 |
#208 在 日期和时间 中
57 每月下载量
用于 updatehub-sdk
27KB
512 行
MS 转换库
将人类时间转换为毫秒的快速抽象。例如,将 1d
转换为 86400000
。
有两种方式计算毫秒
- 在运行时
crate::ms_converter::ms
- 在编译时
crate::ms_converter::ms_expr
入门
用法
将此添加到您的 Cargo.toml 文件中
[dependencies]
ms-converter = "1.4"
示例
在运行时运行 ms 转换器
use crate::ms_converter::ms;
let value = ms("1d").unwrap();
assert_eq!(value, 86400000)
在编译步骤中转换 ms
use crate::ms_converter::ms_expr;
const VALUE: i64 = ms_expr!(i64, 1 d);
assert_eq!(VALUE, 86400000)
将 ms 转换为 time.Duration
use crate::ms_converter::ms_into_time;
let value = ms_into_time("1d").unwrap();
assert_eq!(value.as_millis(), 86400000)
将毫秒转换为人类时间字符串
use crate::ms_converter::{get_duration_by_postfix, DAY};
let value = get_duration_by_postfix(DAY as i64, " day").unwrap();
assert_eq!(value, "1 day")
将毫秒转换为不带后缀的人类时间字符串
use crate::ms_converter::{get_max_possible_duration, DAY};
let value = get_max_possible_duration(DAY as i64).unwrap();
assert_eq!(value, "1d")
将毫秒转换为不带后缀的长人类时间字符串
use crate::ms_converter::{get_max_possible_duration_long, WEEK};
let value = get_max_possible_duration_long(2 * WEEK as i64).unwrap();
assert_eq!(value, "14 days") // Max possible period is a day
支持的时间字符串
- 年:
years
,year
,yrs
,yr
,y
- 周:
weeks
,week
,w
- 天:
days
,day
,d
- 小时:
hours
,hour
,hrs
,hr
,h
- 分钟:
minutes
,minute
,mins
,min
,m
- 秒:
seconds
,second
,secs
,sec
,s
- 毫秒:
milliseconds
,millisecond
,msecs
,msec
,ms
和空后缀
性能
您可以在 此处 检查 ms_converter
和 ms
库的性能差异。
此外,宏在运行时没有时间!它将被转换为常量值。
运行测试
单元测试
cargo test
编码风格测试
运行编码风格测试
cargo fmt --all -- --check
贡献
只需创建 pr 或 issue。欢迎。
版本管理
我们使用SemVer进行版本管理。有关可用的版本,请查看此存储库的标签。
作者
- 米哈伊尔·帕尼洛夫 - 初始工作 - Mnwa
也可以查看参与此项目的贡献者列表。
许可证
本项目采用MIT许可证 - 请参阅LICENSE.md文件以获取详细信息