時區,GMT時間,UTC時間,UNIX時間戳

2022-08-21 08:48:13 字數 3198 閱讀 3444

秒是乙個時間基本單位。一天24小時,一小時60分,一分鐘60秒,這來自於秒的定義——1秒的時間間隔為平均太陽日[1]的1⁄86400。到了20世紀中葉,人們發現地球自轉的時間並不是恆定的,於是在2023年改以地球繞太陽軌道公轉一周的時間來定義秒[2]。2023年,改用原子共振頻率來定義秒[3],並在此基礎上製作出了原子鐘。目前,原子鐘是世界上已知最準確的時間測量和頻率標準。

格林尼治平時(greenwich mean time,gmt),又稱為格林尼治標準時間。

格林尼治平時的正午是指當平太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。自2023年2月5日開始,格林尼治天文台負責每隔一小時向全世界發放調時資訊。由於地球每天的自轉是有些不規則的,而且正在緩慢減速,因此格林尼治平時基於天文觀測本身的缺陷,已經被原子鐘報時的協調世界時(utc)所取代。

在http協議中規定,所有時間都要轉換為gmt時間[4],例如date: sat, 19 may 2018 17:17:24 gmt

世界時(universal time,ut),是一種以格林尼治子夜起算的平太陽時。

由於2023年以前人們在天文觀測中,常常把每天的起始(0時)定為正午,而不是通常民用的午夜,給格林尼治平時的意義造成含糊,人們使用世界時一詞來明確表示每天從午夜開始的格林尼治平時。

時區是指地球上的某乙個區域使用同乙個時間定義。gmt時間或者ut時間,都是表示地球自轉速率的一種形式。從太陽公升起到太陽落下,時刻從0到24變化。這樣,不同經度的地方時間自然會不相同。為了解決這個問題,人們把地球按經度劃分為不同的區域,每個區域內使用同乙個時間定義,相鄰的區域時間差為1個小時。時區又分為理論時區和法定時區。

按經度,每15°為乙個時區,將地球劃分為24個時區,以本初子午線為中心,向東西兩側各延伸7.5°的區域為0時區。

法定時區是在理論時區的基礎上,根據某些地區的國界線做了調整之後的時區。為實際使用的時區。例如中國橫跨東五區到東九區五個時區,但統一使用東八區時間(北京時間)。

某個地方的時刻與0時區的時刻差稱為時差,時差東正西負。以本初子午線為中心,每向東一跨過乙個時區,時刻增加乙個小時,每向西跨過乙個時區,時刻減少乙個小時。

如何理解向東時區增加

由於地球是自西向東轉,在地球的某乙個地方觀察,東邊的時間比西邊的時間早(東邊的人們先看到太陽公升起)。

想象一下某乙個時刻,太陽在你的正上空,此時你所在的地點的時間為正午12點。這時住在你東邊的人們,他們看到太陽已經在西邊了,他們的時刻是下午,所以往東,時刻增加。

大體以180度經線為日界線。當自西向東穿過日期變更線時,日期需要減少一天,反之,日期增加一天。

協調世界時(coordinated universal time)。是主要的世界時間標準,以原子鐘所定義的秒長為基礎,在時刻上盡量接近gmt時間。utc時間認為乙個太陽日總是86400秒。在大多數情況下,utc時間能與gmt時間互換。

本初子午線所在的時區的時間後面加上字元z,表示utc時間。z即為0時區的標誌,讀做zulu。例如09:30 utc就寫作0930z14:45:15 utc則為14:45:15z144515z

utc偏移量用以下形式表示:±[hh]:[mm]±[hh][mm]、或者±[hh]。例如utc時間為09:30z,此時北京時間就是1730 +0800,紐約時間是0430 -0500

utc時間表示的格式一般為sat, 20 may 2018 12:45:57 +0800表示東八區(北京時間)2023年5月20號 12:45:57星期六。

utc時間 + 時差 = 本地時間
例如:

utc時間2018-05-20 09:30:00 utc,utc+0800(北京)2018-05-20 17:30:00 +8000,utc-0500(紐約)2018-05-20 04:30:00 -0500

utc時間2018-05-20 01:30:00 utc,utc+0530(印度)2018-05-20 07:00:00 +0530,utc-1000(夏威夷)2018-05-19 15:30:00 -1000

閏秒是在協調世界時(utc)中增加或減少一秒,使得utc時與原子時[5]之間的差不超過0.9秒。

需要閏秒的部分原因是因為乙個太陽日並不總是86400秒。當要增加正閏秒時,這一秒是增加在第二天的00:00:00之前,效果是延緩utc第二天的開始。當天23:59:59的下一秒被記為23:59:60,然後才是第二天的00:00:00。如果是負閏秒的話,23:59:58的下一秒就是第二天的00:00:00了,但目前還沒有負閏秒調整的需求。

最近的一次新增閏秒是在2023年12月31日23:59:60。

unix時間,或稱posix時間是unix或類unix系統使用的時間表示方式。一般定義為從協調世界時(utc時間)2023年1月1日0時0分0秒起至現在的總秒數。考慮到閏秒的話,更精確的定義為從協調世界時(utc時間)2023年1月1日0時0分0秒起至現在經過閏秒調整之後的總秒數。

由於閏秒的存在,當有調整閏秒發生時,某個unix時間戳可能表示兩個時刻。但是閏秒的調整並沒有一定的規律,這就會導致在用unix時間戳來計算時間間隔時不準確。計算機通過網路時間協議(network time protocol,ntp)來接收閏秒調整的訊息。

這篇部落格說明了這個問題並給出了乙個有意思的建議鏈結

[1] 平均太陽日是人們根據觀察加上人為調整後,得出的時間單位,乙個平均太陽日是固定的24個小時。

[2] 1960. 自曆書時2023年1月1日12時起算的回歸年的31,556,925.9747分之一為一秒

[3] 1秒為銫133原子基態的兩個超精細能階間躍遷對應輻射的9,192,631,770個週期的持續時間。

[4]

[5] 國際原子時標是一種連續性時標,以原子鐘所定義的秒為基本單位,由2023年1月1日0時0分0秒起,以日、時、分、秒計算。原子時標的準確度為每 日數納秒,而世界時的準確度則只為數毫秒。

時區,GMT時間,UTC時間,UNIX時間戳

秒是乙個時間基本單位。一天24小時,一小時60分,一分鐘60秒,這來自於秒的定義 1秒的時間間隔為平均太陽日 1 的1 86400。到了20世紀中葉,人們發現地球自轉的時間並不是恆定的,於是在1956年改以地球繞太陽軌道公轉一周的時間來定義秒 2 1967年,改用原子共振頻率來定義秒 3 並在此基礎...

GMT時間,utc時間

最近專案裡面要求傳遞的時間戳為gmt時間,所以也整了一會才出來.獲取格林威治當天 最開始和最結束的秒數 還是moment元件 var begin moment hours 0 minutes 0 seconds 0 format yyyy mm dd hh mm ss var starttime s...

UTC時間 CST時間和GMT時間

1 utc時間是l零時區的時間。時間協調時間 cst時間是四大時區的時間,標準時間 分別是 central standard time australia ut 9 30 澳大利亞cst 加9個半小時 china standard time ut 8 00 中國cst 加8個小時 cuba stan...