我有一个要求,我需要根据特定文件内指定的时区更改系统的时区,如果文件内指定的时区是“PDT”,我在/中找不到“PDT” usr/share/zoneinfo 而不是它被命名为“PST8PDT”。有没有我可以 grep 并获取此信息的文件。 注意:文件中指定的时区可以是任何内容。
我需要将 TZ 变量设置为文件中指定的时区,该文件必须位于/usr/share/zoneinfo 目录下。
最佳答案
3 个字母的时区名称本身是不明确的。示例:IST
是印度/爱尔兰/以色列标准时间。没有可以下载的“标准”映射,因为一般情况下不存在这样的映射。
您需要在 zoneinfo 中创建一个从 3 个字母的时区到标准时区名称的映射表。
为此,您必须检查您的输入文件,以确定 在您的输入数据中出现的 完整 3 字母时区缩写集。无论输入的时区缩写是否有歧义,您都必须这样做。
然后,如果其中任何一个是模棱两可的,那么您必须为每个模棱两可的缩写决定它指的是哪个 zonnifo 时区。因此,例如,在您的表中,IST
行将指向 Asia/Kolkata
的区域信息名称。
这里没有捷径。您必须创建和维护映射,并且必须解决歧义。
关于c - 如何获取时区的相应位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26087962/