1. 程式人生 > >關於UTC時區

關於UTC時區

本答案轉自百度知道;


整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通訊場合,為了統一起見,使用一個統一的時間,稱為通用協調時(UTC, Universal Time Coordinated)。UTC與格林尼治平均時(GMT, Greenwich Mean Time)一樣,都與英國倫敦的本地時相同。在本文中,UTC與GMT含義完全相同。

北京時區是東八區,領先UTC八個小時,在電子郵件信頭的Date域記為+0800。如果在電子郵件的信頭中有這麼一行:

Date: Fri, 08 Nov 2002 09:42:22 +0800

說明信件的傳送地的地方時間是二○○二年十一月八號,星期五,早上九點四十二分(二十二秒),這個地方的本地時領先UTC八個小時(+0800, 就是東八區時間)。電子郵件信頭的Date域使用二十四小時的時鐘,而不使用AM和PM來標記上下午。

以這個電子郵件的傳送時間為例,如果要把這個時間轉化為UTC,可以使用一下公式:

UTC + 時區差 = 本地時間

時區差東為正,西為負。在此,把東八區時區差記為 +0800,

UTC + (+0800) = 本地(北京)時間 (1)

那麼,UTC = 本地時間(
北京時間
))- 0800 (2)

0942 - 0800 = 0142

即UTC是當天凌晨一點四十二分二十二秒。如果結果是負數就意味著是UTC前一天,把這個負數加上2400就是UTC在前一天的時間。例如,本地(北京)時間是 0432 (凌晨四點三十二分),那麼,UTC就是 0432 - 0800 = -0368,負號意味著是前一天, -0368 + 2400 = 2032,既前一天的晚上八點三十二分。

紐約的時區是西五區,比UTC落後五個小時,記為 -0500:

UTC + (-0500) = 紐約時間 (3)

UTC = 紐約時間 + 0500 (4)

把(2)式 - (4)式相比較,

UTC = 北京時間 - 0800 = 紐約時間 + 0500 (5)

北京時間
= 紐約時間 + 1300 (6)

即北京時間領先紐約時間十三個小時,由(6)式,

紐約時間 = 北京時間 - 1300 (7)

在四月下旬,紐約又換用夏令時,又稱為日光節約時,比標準紐約時間提前一個小時,實際成為西四區的標準時間,成為 -0400。

UTC + (-0400) = 紐約夏令時,套用以上公式,

北京時間 = 紐約夏令時 + 1200

紐約夏令時 = 北京時間 - 1200

在這些轉換中,最重要的公式就是

UTC + 時區差 = 本地時間

時區差東為正,西為負。例如,東八區(北京)是 +0800,西五區(紐約)是-0500,加州是西八區,是-0800,美國中部時區是西六區,-0600,美國山地時區是西七區,-0700,太平洋時區
是西八區,-0800,在夏天使用夏時制,成為-0700。德國時區是東一區,+0100,夏天變為+0200。

多數電子郵件程式,例如Outlook Express,在顯示時間時,計算機程式把時間先轉換成為本地時間再顯示,例如,郵件的Date域為:

Date: Fri, 08 Nov 2002 09:42:22 +0800