java中的關於時間的概念

前言:有些概念很抽象,不好理解。花點時間搞定它們,讓自己應用起來更加得心應手。


先摘錄這些名詞的由來,大家看看心中有數就好。

格林威治標準時間 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

DST是Daylight Saving Time的縮寫,稱爲陽光節約時,在我國稱爲夏時制,又稱夏令時,是一種爲節約能源而人爲調整地方時間的制度。有些國家DST的使用時間較長,(如美國長達7個月)跨越了春夏秋等三個季節,因此簡單地用夏時制的概念已經不能完全表達DST的確切含義了,所以有人也稱其爲節能時。本文統一使用“DST”這一說法。所謂的DST,就是利用夏季天亮得早這一自然現象,人爲地將時間提前一小時。這樣就可以使人們早起早睡,以充分利用光照資源,減少照明時間,從而節約照明用電。

總結一下:
1>UTC、GMT可以不做區分
2>DST 是地方人爲的調整時間表示,方便大家作息。

切入正題:重要概念


1.時間戳任何地方都是相同的

比如中國現在是晚上8點 那美國就是早上8點。注意這個只是時間表示不同,無論你在中國還是美國,大家對應的時間戳是一樣的。java時間戳是從1970年1月1日0點(對應時間戳就是0)開始計算

2.時間是一種人爲表示法

全球被劃爲24個時區,GMT對應的就是0時區。時區是東正西負,正表示在時間表示上比0時區快幾個小時,負表示在時間表示上比0時區慢幾個小時。
比如GMT是2017.10.1號0點。中國是東八區,所以中國顯示的時間就是2017.10.1號8點。
注意這個只是時間表示上不同而已,大家的時間戳是相同的

3.夏令時其實和時區概念差不多

就是人爲在時區的基礎上,根據當地來相應的調快或者調慢時間表示而已。

換算公式:
UTC/GMT時間 + 當前時區(東+西-) = 本地時間
注意:一個國家領土面積很大會跨越好幾個時區,比如中國跨越5個時區,但是爲了時間在一個國家的統一,中國採用北京時間就是東八區。

已經到底了=_+,下一篇介紹java中對時間處理的API。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章