1. 程式人生 > >時間標準總結 IAT、UT、UTC、GMT、夏令時

時間標準總結 IAT、UT、UTC、GMT、夏令時

原子時:International Atomic Time(IAT)

又稱國際原子時,是一種通過原子鐘得到的時間標準,原子鐘是世界上已知最準確的時間測量和頻率標準,原子鐘在 37 億年的誤差不超過 1 秒。

世界時:Universal Time(UT)

是一種以格林尼治子夜起算的平太陽時。世界時是以地球自轉為基準得到的時間尺度,其精度受到地球自轉不均勻變化和極移的影響,為了解決這種影響,1955年國際天文聯合會定義了UT0、UT1和UT2三個系統:

  • UT0系統是由天文觀測直接測定的世界時,未經任何改正。該系統曾長期被認為是穩定均勻的時間計量系統,得到過廣泛應用
  • UT1系統是在UT0的基礎上加入了極移改正 Δλ
  • UT2系統是在UT1基礎上加入了地球自轉速率的季節性改正 ΔT

它們之間的關係可以表示為

UT1 = UT0 + Δλ
UT2 = UT1 + ΔT

協調世界時(UTC):

又稱世界標準時間或世界協調時間,是當今最主要的世界時間標準,以原子時秒長為基礎。

國際原子時的誤差為每日數納秒,世界時的誤差為每日數毫秒,UTC 便是這兩種時標的一種折中。

為確保 UTC 與世界時相差不會超過 0.9 秒,在有需要的情況下會在協調世界時內加上正或負閏秒。因此協調世界時與國際原子時之間會出現若干整數秒的差別。位於巴黎的國際地球自轉事務中央局負責決定何時加入閏秒,一般會在每年的 6 月 30 日、12 月 31 日的最後一秒進行調整。

UTC 的應用及其廣泛,被應用在大多數的計算機以及網路標準中。

格林尼治標準時間:Greenwich Mean Time(簡稱 GMT)

指位於倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那裡的經線。 

理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時的時間。但由於地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能和實際的太陽時相差16分鐘。

由於地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間(UTC)由原子鐘提供。

自1924年2月5日開始,格林尼治天文臺每隔一小時會向全世界發放調時資訊。

UTC是基於標準的GMT提供的準確時間。

GMT 以格林尼治天文臺經線為 0 度經線,將世界分為 24 個時區,向東時間快,向西時間慢。

夏令時與冬令時 Daylight Saving Time(簡稱 DST)

又稱“日光節約時制”和“夏令時間”,是一種為節約能源而人為規定地方時間的制度,在這一制度實行期間所採用的統一時間稱為“夏令時間”。

一般在天亮早的夏季人為將時間提前一小時,可以使人早起早睡,減少照明量,以充分利用光照資源,從而節約照明用電。各個採納夏時制的國傢俱體規定不同。目前全世界有近110個國家每年要實行夏令時。 

自2011年3月27日開始俄羅斯永久使用夏令時,把時間撥快一小時,不再調回。

簡單來說,使用夏令時和冬令時即在夏季將時間撥快一個小時,等到冬季再將時間撥慢一個小時。

舉個例子總結一下:

假設當前 GMT 時間為 13:00,已知北京時間為 GMT+8(北京位於東 8 區),所以北京時間為 13:00 + 8 = 21:00。

但當存在夏令時時,會出現不同。比如已知莫斯科時間為 GMT+3,理論上莫斯科時間為 16:00,但是由於俄羅斯永久使用夏令時,所以實際上莫斯科時間為 17:00。

再從程式設計說起,Linux 的庫函式中有一個 gmtime 函式可以將底層的時間值轉換為 GMT 或 UTC 時間(在計算機中 GMT 時間和 UTC 時間是一樣的),即格林尼治標準時間,如果需要獲取當地時間,則需要使用 localtime 函式,該函式可以根據當地時區和是否採用夏令時進行調整。