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小時。時間

相關文章
相關標籤/搜索