我需要获取国家/城市(例如:America/New_York
)从我的本地系统使用 time 包中的 LoadLocation(value string) 提供给 api。
如何在不使用任何外部配置来获取区域的情况下获取此信息?
无法保证在您的系统上正确设置该位置的 IANA 名称。
要获取它,首先检查TZ
环境变量。如果它存在,则它might是有效的 IANA 名称(例如:America/New_York
).
If TZ
没有设置,看看是什么/etc/localtime
指向(通常是符号链接)。在大多数情况下,它会指向类似的内容/usr/share/zoneinfo/America/New_York
。您需要自己提取区域/位置组件。
重要的提示: 这里有很多注意事项:
- TZ 的内容,或指向的文件
/etc/localtime
可能是时区缩写名称。例如:EST
。无法从该名称转为 IANA 名称。
- TZ 可以设置但为空,这意味着
UTC
-
/etc/localtime
可能是实际 tzdata 文件的副本,其中仅包含时间偏移量,而不包含 IANA 名称。
简而言之,如果服务器接受缩写的时区名称或时间偏移量,那么对每个相关人员来说都会好得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)