7 个版本
0.1.6 | 2023年11月2日 |
---|---|
0.1.5 | 2023年4月13日 |
0.1.4 | 2022年5月11日 |
0.1.2 | 2022年4月22日 |
#1060 在 命令行工具 中
31KB
725 行
Rusty 时间解释器 (rti)
rti
(Rusty 时间解释器) 是一个命令行工具,用于在 Unix 纪元时间和日期/时间字符串之间进行转换。它用 Rust 编写,应该可以在任何平台上运行。
这个工具受到了 Ainsley McGrath 的非常有用的工具 epoch-echo 的启发。虽然这个工具很棒,但主要问题是速度和可移植性,这激发了我用 Rust 编写这个工具。
安装
目前您可以选择克隆存储库并自己编译二进制文件,或者使用 cargo 下载。使用 cargo
cargo install rti
这将创建一个全局可执行的命令,您可以在命令行中使用它。 注意: 这只在 macOS 和 Windows 10 上进行了测试。
用法
rti
接受任意数量的命令行参数,可以是整数 Unix 纪元或字符串日期/时间/日期时间,并将它们转换为相反的格式。
$ rti 1 1650627609 2022-04-22\ 11:40:09
1 => 01-01-1970 00:00:01
1650627609 => 04-22-2022 11:40:09
2022-04-22 11:40:09 => 1650627609
Timezone: UTC
还有特殊的关键字 now
、yesterday
、tomorrow
,分别表示今天、昨天和明天的当前时间,并将它们转换为纪元时间。
// ran at May 10, 2022 at 5:25PM UTC time
$ rti now yesterday tomorrow
now => 1652203517
yesterday => 1652117117
tomorrow => 1652289917
Timezone: UTC
时区
rti
支持通过设置持久配置和使用环境变量来使用自定义时区。如果您在本地配置或环境变量中没有设置时区,将使用 UTC。
// Set custom timezone in config
$ rti set-tz America/New_York
// clear timezone config
$ rti clear-tz
// using TIMEZONE environment variable
$ TIMEZONE=America/Denver rti now
rti
时区的设置顺序如下
- 环境变量
- 配置
- 如果没有配置或环境变量,则使用 UTC
自定义解析令牌
rti
配备了预设的解析模式,但您也可以添加自己的日期时间令牌进行解析。请注意,令牌必须是完整的日期时间值(不仅是时间或日期)。
有关语法的详细信息,请参阅 https://docs.rs/chrono/0.4.0/chrono/format/strftime/index.html
$ rti add-token "%d-%m-%y %H:%M"
Custom Token added
$ rti view-tokens
Custom datetime tokens:
%d-%m-%y %H:%M
$ rti remove-token "%d-%m-%y %H:%M"
Token removed if it existed: %d-%m-%y %H:%M
依赖项
~2.4–4MB
~67K SLoC