我有一个嵌入式系统,我们希望在其中创建自定义夏令时。
我可以通过设置TZ环境变量来实现这一点,例如:export TZ=IST-2IDT,M3.4.4/26,M10.5.0
。
我们有几个守护进程在运行(例如守护进程A、守护进程B等),如果其中一个进程导出TZ
,那么其他守护进程将无法看到它。所以这是一个问题。一个可能的解决方案可能是使用一个文件而不是环境变量,这样"每个人"都可以看到它
GNU C库手册说:
:characters
Each operating system interprets this format differently; in the GNU C Library, characters is the name of a file which describes the time zone.
当我export TZ=:/etc/TZ
,然后echo IST-2IDT,M3.4.4/26,M10.5.0 > /etc/TZ
时,它不起作用。当我发出date
命令时,我看到了这一点:
Mon Aug 15 04:19:36 /etc/TZ 2016
有人能给我线索吗?
非常感谢!!
/etc/TZ等文件取决于系统的类型(因此称它们为非标准,尽管这方面的标准化很差)。时区的常见配置方式是通过/etc/localtime文件。通常,这些是由时区编译器从规则(文本)文件中生成的。例如,它在tzfile手册页中。
日期中的时区是开始进一步阅读的好地方,因为它提到了一些关于/etc/TZ的可能性。如果/etc/TZ适用于您的系统,那么接受的答案指向这个Oracle页面,它似乎记录了格式。