Linux下的时区设置格式

在咱们的MiniHub产品上,时区是经过设置TZ环境变量或者设置/etc/TZ变量获得的。函数

这个能够查libc库源码阅读 tzset() 得知:spa

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

系统帮助是这么说的:产品

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

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

  • 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个星期日结束。im

好了,只介绍这里。img

试一下:环境变量

如上,第一个设定为东8区,时间正常。
第二个设置为-8:30,结果时间提早了30分钟。
第三个添加了DDS,则时间再提交1小时。时间

相关文章
相关标签/搜索