您的位置:首页 > 运维架构 > Linux

Linux下的时区设置格式

2016-06-09 00:00 393 查看
在我们的MiniHub产品上,时区是通过设置TZ环境变量或者设置/etc/TZ变量得到的。

这个可以查libc库源码阅读 tzset() 得知:



在函数 read_TZ_file() 函数中,从 /etc/TZ 中读取时区串。

系统帮助是这么说的:

如果 TZ 环境变量没有设置,或值是空的,或者不能解析,那么系统就以 UTC 时间返回。

TZ 的格式如下: std offset[dst[offset][,start[/time],end[/time]]],中间没有空格。
具体如下:

std 为时区名,大于或等于3字节的字串,如中国为CST.

offset 为偏移量,格式是: [+|-]hh[:mm[:ss]],值得注意的是,东区为负,西区为正。
如,中国为东8区,那么偏移值为 -8,而不是 +8。
对于印度这种东5.5时区的,偏移为 -5:30

dst 与后面的 offset 为夏令时。如果只设定了dst,而没有指定offset,那么时间默认提前1小时

比如 New Zealand 例子,TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
那里的标准时间NZST是相对UTC时间提前了12小时,日照时间相对UTC提前13小时。
夏令时从10月的第1个星期日到3月的第3个星期日结束。

好了,只介绍这里。

试一下:



如上,第一个设定为东8区,时间正常。
第二个设置为-8:30,结果时间提前了30分钟。
第三个添加了DDS,则时间再提交1小时。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux timezone