【发布时间】:2012-09-13 07:41:29
【问题描述】:
有没有办法从 Linux shell 脚本中获取规范时区名称?例如,如果我配置的时区是 PDT,那么我想获得“America/Los_Angeles”。
我知道如果已配置符号链接 /etc/localtime ,我可以获取它,但由于它可能未在所有服务器中配置,我不能依赖那个。
另一方面,我可以使用命令 date +%Z 获得短时区名称,但我仍然需要规范名称。
有没有办法获取当前时区的规范名称或转换使用 date +%Z 命令获取的时区,即使符号链接 /etc/localtime 未设置?
【问题讨论】:
-
我会说“PDT”更接近于规范名称,而“America/Los_Angeles”只是帮助将位置映射到正确时区的描述性标签。
-
我认为这是不可能的;一个缩写,即使明确扩展(例如“太平洋夏令时间”),也可以有多个对应的 TZ 数据库条目。例如,PDT不仅是
America/Los_Angeles,还有America/Dawson、America/Ensenada、America/Sitka、America/Tijuana、America/Vancouver、America/Whitehorse和US/Pacific。 (事实上,如果你没有指定你想要America/Los_Angeles,我会假设你想要US/Pacific。)