我正在接受 TZ 的输入,并且想将其转换为 (+/-)HHMM 格式。但不是与UTC比较,我希望它与当地时间比较。我该怎么做?
答案1
这不是使用bash
.这是使用命令date
和格式说明符(广泛使用但讽刺的是没有标准化 for,date
尽管它是 for strftime()
)的一个相当简单的练习%z
。
TZ="亚洲/东京" 日期 +"%z"
这样就得到了当前的当然,UTC 偏移量考虑了夏令时切换。的各种实现date
允许显示任意时间戳而不是当前时间,而无需尝试设置系统时钟,从而获得一年中其他时间的 UTC 偏移量。
例如:FreeBSDdate
有一个选项,并以严格降序形式-j
获取输入时间戳(默认情况下,如果未使用)。-f
%TZ="欧洲/里斯本" 日期 -j +"%z" "202401060000" +0000 %TZ="欧洲/里斯本" 日期 -j +"%z" "202407060000" +0100 %
还有一些工具,例如zdump
,但date
命令是这里最明显的一个。
进一步阅读
date
。 2018年8月4日。 BSD通用命令手册。免费的BSD。- 如何让“date”输出不同时区的时间?
- 为什么 TZ=UTC-8 生成 UTC+8 的日期?
- 需要获取时区详细信息
- “实用程序:日期”。 外壳命令语言。单一 UNIX 规范。第 7 期。IEEE 1003.1。 2016。公开组。