#时区 #翻译器 #转换器 #cli #命令行工具 #时间

程序 tzt

简单命令行工具,用于将给定时间从时区转换为另一个时区

2 个不稳定版本

0.3.0 2024 年 8 月 6 日
0.2.0 2024 年 8 月 6 日

命令行工具 中排名第 98

Download history 214/week @ 2024-08-04 20/week @ 2024-08-11

每月下载量 234

MIT 许可证

50KB
876

tzt - 时区转换器

简单命令行工具,用于将给定时间从时区转换为另一个时区。

LICENSE rust workflow

功能

用法

您可以使用以下命令查看帮助信息。

$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