我想在定义为 GMT 的不同时区之间转换 UTC 上的自定义字符串时间。
我概括这里的所有答案都可以。但这个例子有一些问题:
1.TZ='GMT-07' date --date='TZ="UTC" 00:34'
07:34:00 +0700
2.TZ=':America/Vancouver' date --date='TZ="UTC" 00:34'
17:34:00 -0700
当我尝试使用 GMT 作为目的地 TZ 时,为什么结果不同?
这个城市有相同的格林威治标准时间。
PS 所以我找到了 GMT 目的地的解决方案,结果按时间显示,并且 TZ 显示错误。
TZ='UTC' date --date='TZ="GMT-07" 00:34'
17:34:00 +0000
答案1
TZ='GMT-07' TZ=':America/Vancouver'
声称它们相同的说法是错误的。第一个是 POSIX 风格的规则,描述 7 小时的时区(缩写为“GMT”)先标准时间中的 UTC,并且没有夏令时转换。负数的意思是先世界标准时间 (UTC)。
温哥华位于太平洋时区,时差为 8 小时在后面标准时间为 UTC,夏令时比 UTC 晚 7 小时。正确的 POSIX 风格规则是 ,它简化了加拿大法律的实际复杂性PST8PDT
。
进一步阅读
man tzset