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命令行工具

MIT 许可证

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

还有特殊的关键字 nowyesterdaytomorrow,分别表示今天、昨天和明天的当前时间,并将它们转换为纪元时间。

// 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 时区的设置顺序如下

  1. 环境变量
  2. 配置
  3. 如果没有配置或环境变量,则使用 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