星期三, 6月 10, 2009

Linux TimeZone


GMT : Greenwich Mean Time,也就大家常見的格林威治標準時間。

台灣是GMT+8,也就是說也格林威治標準時間多8小時,例如格林威治標準時間是一月一號00:00,台灣就是一月一號08:00,但是~~要在linux下設定Timezone,是要下XXX -n,'-n'是指超前n小時的意思,所以是"CST"。

所以說常看設定時區上,台灣是屬於"GMT+8",但是設定Timezone是"CST-8"(超前格林威治8小時,稱為CST)。

以上是無聊看code,所發現的,之前都沒有注意,都是直接去用....冏rz.....

6 意見:

RFC 提到...

"但是~~要在linux下設定Timezone,是要下XXX -n,'-n'是指超前n小時的意思,所以是"CST"。

是否可以請問一下, 這句話是什麼document找到的,我也在研究這個問題, 謝謝.

我的email: rfc1112@yahoo.com.tw

小明王 提到...

我是去google上去找的...也是別人的結論...剛剛又稍微去google一下TZ相關資料,大部分的系統..不用date去改TZ的話..都是把localtime去ln到/usr/share/zoneinfo裡面的檔案...因為我是用在embedded system..所以必須直接修改TZ系統變數

RFC 提到...

我也是在做embedded system, TZ系統變數是指什麼呢? 謝謝

小明王 提到...

TZ就是Timezone,系統就是根據這個檔案內容來做時區的變化。我是覺得作法應該跟kernel版本有關係,我這個是linux-2.4.17(patch過),另外chip是TI的tnetv1050,因為這個是已經port好的系統,所以詳細的過程,就沒有去了解了...XD。

RFC 提到...

所以你TZ系統變數就是指/usr/share/zoneinfo裡面的檔案是嗎?
我現在也是去改變這個file, 我是用GMT的file. 在台灣我必須要選GMT-8這個file才行. 但與我們所熟知的台灣時區(GMT+8:00)
很大的不同.所以我才會問這個問題.

小明王 提到...

不是的..這邊的作法跟一般的unix like系統不一樣...。簡單來說是這樣...系統有個記錄時區的檔案,也就是TZ,位於/var裡面,當user去改變時區的時候,就是去改寫此TZ file。