Linux时区详解
全球24個時區的劃分
????? 相較于兩地時間表,可以顯示世界各時區時間和地名的世界時區表(World Time),就顯得精密與復雜多了,通常世界時區表的表盤上會標示著全球24個時區的城市名稱,但究竟這24個時區是如何產生的?過去世界各地原本各自訂定當地時間,但隨著交通和電訊的發達,各地交流日益頻繁,不同的地方時間,造成許多困擾,于是在西元1884年的國際會議上制定了全球性的標準時,明定以英國倫敦格林威治這個地方為零度經線的起點(亦稱為本初子午線),并以地球由西向東每24小時自轉一周360°,訂定每隔經度15°,時差1小時。而每15°的經線則稱為該時區的中央經線,將全球劃分為24個時區,其中包含23個整時區及180°經線左右兩側的2個半時區。就全球的時間來看,東經的時間比西經要早,也就是如果格林威治時間是中午12時,則中央經線15°E的時區為下午1時,中央經線30°E時區的時間為下午2時;反之,中央經線15°W的時區時間為上午11時,中央經線30°W時區的時間為上午10時。以臺灣為例,臺灣位于東經121°,換算后與格林威治就有8小時的時差。如果兩人同時從格林威治的0°各往東、西方前進,當他們在經線180°時,就會相差24小時,所以經線180°被定為國際換日線,由西向東通過此線時日期要減去一日,反之,若由東向西則要增加一日。
格林威治標準時間GMT
????? 十七世紀,格林威治皇家天文臺為了海上霸權的擴張計畫而進行天體觀測。1675年舊皇家觀測所(Old Royal Observatory) 正式成立,到了1884年決定以通過格林威治的子午線作為劃分地球東西兩半球的經度零度。觀測所門口墻上有一個標志24小時的時鐘,顯示當下的時間,對全球而言,這里所設定的時間是世界時間參考點,全球都以格林威治的時間作為標準來設定時間,這就是我們耳熟能詳的「格林威治標準時間」(Greenwich Mean Time,簡稱G.M.T.)的由來,標示在手表上,則代表此表具有兩地時間功能,也就是同時可以顯示原居地和另一個國度的時間。
世界協調時間UTC
????? 多數的兩地時間表都以GMT來表示,但也有些兩地時間表上看不到GMT字樣,出現的反而是UTC這3個英文字母,究竟何謂UTC?事實上,UTC指的是Coordinated Universal Time- 世界協調時間(又稱世界標準時間、世界統一時間),是經過平均太陽時(以格林威治時間GMT為準)、地軸運動修正后的新時標以及以「秒」為單位的國際原子時所綜合精算而成的時間,計算過程相當嚴謹精密,因此若以「世界標準時間」的角度來說,UTC比GMT來得更加精準。其誤差值必須保持在0.9秒以內,若大于0.9秒則由位于巴黎的國際地球自轉事務中央局發布閏秒,使UTC與地球自轉周期一致。所以基本上UTC的本質強調的是比GMT更為精確的世界時間標準,不過對于現行表款來說,GMT與UTC的功能與精確度是沒有差別的。
夏日節約時間DST
????? 所謂「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),是指在夏天太陽升起的比較早時,將時鐘撥快一小時,以提早日光的使用,在英國則稱為夏令時間(Summer Time)。這個構想于1784年由美國班杰明·富蘭克林提出來,1915年德國成為第一個正式實施夏令日光節約時間的國家,以削減燈光照明和耗電開支。自此以后,全球以歐洲和北美為主的約70個國家都引用這個做法。目前被劃分成兩個時區的印度也正在商討是否全國該統一實行夏令日光節約時間。歐洲手機上也有很多GSM系統的基地臺,除了會傳送當地時間外也包括夏令日光節約時間,做為手機的時間標準,使用者可以自行決定要開啟或關閉。值得注意的是,某些國家有實施「夏日節約時間」的制度,出國時別忘了跟隨當地習慣在表上調整一下,這可是機械表沒有的功能設計哦!
CST時間
CST卻同時可以代表如下 4 個不同的時區:
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00
Cuba Standard Time UT-4:00
可見,CST可以同時表示美國,澳大利亞,中國,古巴四個國家的標準時間。
在unix下通過/etc/localtime這個硬連接指向的/usr/share/zoneinfo下的時區文件表示當前的真正時區。比如
/etc/localtime指向了/usr/share/zoneinfo/Asia/Shanghai這個文件的時候,CST就代表了中國標準時間。
?
linux時區查看:
rehl、centos:
[root@rhel67 Asia]# date -R
Fri, 15 Dec 2017 10:52:17 +0800
[root@rhel67 Asia]# date +"%Z %z"
CST +0800
可以解釋為:中國標準時間,UTC +8小時 ?東八區
[root@rhel67 Asia]# cat /etc/sysconfig/clock
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE="Asia/Shanghai"
可以看到系統時區
aix下:
echo $TZ
?
?
?
安裝服務器時,可以設置是否使用UTC時間
System clock uses UTC
世界協調時間(Universal Time Coordinated,UTC)
GPS 系統中有兩種時間區分,一為UTC,另一為LT(地方時)兩者的區別為時區不同,UTC就是0時區的時間,地方時為本地時間,如北京為早上八點(東八區),UTC時間就為零點,時間比北京時晚八小時,以此計算即可
在linux中,用data查看時間的時候顯示:
2008年 12月 17日 星期三 09:04:14 CST
這個CST是什么意思呢?
CST China Standard Time UTC+8:00 中國沿海時間(北京時間)
?
從CST轉換為UTC:
1、cp -af /usr/share/zoneinfo/UTC /etc/localtime
2、vi /etc/sysconfig/clock
如果有:UTC=false,修改為:UTC=true
如果沒有,增加:UTC=true
?
?
同樣的,如果想從UTC轉為CST,則進行如下操作
1、cp -af /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、vi /etc/sysconfig/clock
如果有:UTC=true,修改為:UTC=false
總結
- 上一篇: 哥特巴赫猜想 尾递归 湘潭孕妇之后的自我
- 下一篇: 动态分析之OllyDbg