我有一个嵌入式系统,我们希望在其中创建自定义夏令时。
我可以通过设置 TZ 环境变量来实现这一点,例如:export TZ=IST-2IDT,M3.4.4/26,M10.5.0
。
我们有几个守护进程在运行(例如 daemonA、daemonB 等),如果其中一个导出 TZ
,那么其他守护进程将无法看到它。所以这是一个问题。一种可能的解决方法是使用文件而不是环境变量,以便“每个人”都可以看到它。
GNU C 库手册说明如下:
:字符
每个操作系统对这种格式的解释都不同;在 GNU C 库中,字符是描述时区的文件名。
当我export TZ=:/etc/TZ
,然后echo IST-2IDT,M3.4.4/26,M10.5.0 >/etc/TZ
,它不起作用。当我发出 date
命令时,我看到了这一点:
8 月 15 日星期一 04:19:36/etc/TZ 2016
有人能给我任何线索吗?
非常感谢!!
最佳答案
诸如/etc/TZ 之类的文件取决于系统的类型(称它们为非标准,尽管这方面的标准化很差)。配置时区的通常方式是通过/etc/localtime 文件。通常这些是由 timezone compiler 从规则(文本)文件生成的.它在 tzfile 中例如手册页。
timezone-in-date是开始进一步阅读的好地方——因为它提到了一些关于/etc/TZ 的可能性。如果/etc/TZ 适用于您的系统,则那里接受的答案指向此 Oracle page ,它似乎记录了格式。
关于linux - TZ 变量,自定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28491719/