2 个不稳定版本
0.3.0 | 2024 年 8 月 6 日 |
---|---|
0.2.0 | 2024 年 8 月 6 日 |
在 命令行工具 中排名第 98
每月下载量 234 次
50KB
876 行
tzt - 时区转换器
简单命令行工具,用于将给定时间从时区转换为另一个时区。
功能
- 将给定时间从时区转换为另一个时区。
- 支持多个时区。
- 若要查看支持时区的列表,请阅读以下网址。
- https://docs.rs/chrono-tz/latest/chrono_tz/enum.Tz.html
用法
您可以使用以下命令查看帮助信息。
$tzt --help
translate time from one timezone to another
Usage: tzt [OPTIONS] --time <TIME>
Options:
-T, --time <TIME>
Time in the format YYYY-MM-DD HH:MM:SS (you can omit HH:MM:SS) or YYYY-MM-DDTHH:MM:SS
-f, --from <FROM_TIMEZONE>
The original timezone (e.g. America/New_York) @see https://docs.rs/chrono-tz/latest/chrono_tz/enum.Tz.html [default: Your_Local_Timezone]
-t, --to <TO_TIMEZONE>
The target timezone (e.g. Asia/Tokyo) @see https://docs.rs/chrono-tz/latest/chrono_tz/enum.Tz.html# [default: Your_Local_Timezone]
-a, --ambiguous-time-strategy <STRATEGY>
Strategy to use for ambiguous times (earliest, latest) [default: earliest]
-h, --help
Print help
-V, --version
Print version
依赖关系
此项目需要以下依赖项
Cargo
:Rust 软件包管理和构建工具。Make
:简化构建过程的构建自动化工具。
入门
安装(cargo)
您可以使用 cargo 安装二进制文件。
cargo install tzt
安装(二进制文件)
要安装二进制文件,您可以使用以下命令。
sudo curl -L -o \
/usr/local/bin/tzt \
https://github.com/shunsock/timezone_translator/releases/download/v0.3.0/timezone_translator &&\
sudo chmod +x /usr/local/bin/tzt
安装(从源代码)
您还可以从源代码构建和安装二进制文件。要构建和安装项目,您可以在 Makefile 中使用 install
目标。
git clone https://github.com/shunsock/timezone_translator.git
cd timezone_translator
make install
安装二进制文件后,您可以从命令行运行它
$ tzt -T "2024-01-01 12:00:00" -f "America/New_York" -t "UTC"
2024-01-01 17:00:00 UTC
卸载
您可以使用 cargo 命令卸载二进制文件。
cargo uninstall tzt
要删除已安装的二进制文件,请使用如果您通过 curl 安装或从源代码构建,请使用 uninstall
命令。
make uninstall
模糊时间策略
对于模糊时间,有两种策略:`earliest` 和 `latest` 以处理模糊时间。
模糊时间发生在夏令时(DST)调整时钟时。当 DST 开始时,时钟向前推进一小时,当 DST 结束时,时钟向后移动一小时。这意味着在秋季时钟向后移动时,会有一小时发生两次。`earliest` 策略使用时间的第一次出现,而 `latest` 策略使用时间的第二次出现。
tzt 默认使用 `earliest` 策略处理模糊时间。
$ tzt --time '2024-11-03 01:30:00' --from 'America/New_York' --to 'UTC'
2024-11-03 05:30:00 UTC
如果您想使用 `latest` 策略,可以使用 ambiguous-time-strategy
(-a
)选项。
$ tzt --time '2024-11-03 01:30:00' --from 'America/New_York' --to 'UTC' --ambiguous-time-strategy 'latest'
2024-11-03 06:30:00 UTC
错误处理
当 tzt 验证器
发现无效值时,tzt 输出验证错误。
这是一个无效时间格式的示例。您可以使用 tzt --help
查看所有有效时间格式。
$ tzt --time '2024-01-' --from 'America/New_York' --to 'UTC'
Invalid time format found: 2024-01- (expected: YYYY-MM-DD hh:mm:ss)
这是一个无效时区的示例。您可以通过查看 https://docs.rs/chrono-tz/latest/chrono_tz/enum.Tz.html
来检查所有有效输入,因为 tzt 内部使用 chrono-tz
库。
$ tzt --time '2024-03-10 02:30:00' --from 'America/New_York' --to 'NOT EXIST'
Invalid timezone found: NOT EXIST. @see https://docs.rs/chrono-tz/latest/chrono_tz/enum.Tz.html
tzt 翻译器
可以处理输出时间和时区不存在的案例。
$ tzt --time '2024-03-10 02:30:00' --from 'America/New_York' --to 'America/Los_Angeles'
Translation Error: Output time and timezone does not exist. Please check DST rules.
许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 许可证 文件。
依赖关系
~5.5–7.5MB
~125K SLoC