Java 時間處理

2021-09-17 20:28:12 字數 1777 閱讀 3664

時區、冬令時和夏令時、時間戳

時間戳1970-01-01 00:00:00 應用最廣泛的時間戳參照點

2001-01-01 00:00:00 常被蘋果系統使用

注意:以上時間節點皆採用utc的標準時區。
時間戳描述了距離某一時刻經過的時間跨度,是乙個絕對值,和時區,冬夏令時沒有關係。所以在地球上的同一時間點,對於同一參照點,獲取到的時間戳都是完全一致的。

時區

2023年在華盛頓召開的國際經度會議(又稱國際子午線會議)上,規定將全球劃分為24個時區(東、西各12個時區)。

gmt vs utc

gmt 全稱 greenwich mean time,中文為格林威治(格林尼治)標準時間

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

utc 全稱 universal time coordinated,世界標準時間

pst 全稱 pacific standard time,太平洋標準時間,等同於utc/gmt -8,既西八區,被北美國家使用

cet歐洲中部時間(central european time,cet)是比世界標準時間(utc)早乙個小時的時區名稱之一。它被大部分歐洲國家和部分北非國家採用。冬季時間為utc+1,夏季歐洲夏令時為utc+2。

cst北京時間,china standard time,又名中國標準時間,是中國的標準時間。在時區劃分上,屬東八區,比協調世界時早8小時,記為utc+8,與中華**國家標準時間(舊稱「中原標準時間」)、香港時間和澳門時間和相同。當格林威治時間為凌晨0:00時,中國標準時間剛好為上午8:00。

gmt和utc都是代表0時區的時間,兩者相等。utc是2023年之後引入的概念,是gmt的後繼,現廣泛應用於科技領域。

全球分為24個時區之後,從utc/gmt 開始往西依次表示為utc/gmt - 1,-2……,往東表示為ugc/gmt+1,+2……。

冬令時、夏令時

地球自轉方向從西向東,所以東邊更早看到新一天的太陽。各地區在時區概念的基礎上,時間更接近於太陽時(最簡單的理解就是太陽直射時,當地時間基本接近12點)。

晝夜長短會隨著四季變換,出於減少能源消耗的目的,提出了冬令時、夏令時的概念。

在天亮早的夏季人為將時間提前一小時,可以使人早起早睡,減少照明量,以充分利用光照資源,從而節約照明用電。

冬令時通常代表使用當地的標準時間,夏令時實施期間時鐘撥快一小時,相當於時區往前(東)進乙個。

冬夏令時會導致有些天不是24h,而是23或25h。

每年會對時間進行兩次調整,如下圖所示:

總結

時間戳代表了距離某一標準參考時刻經過的(毫)秒數。所以可以唯一標識時間軸上的一點。

時區是為了人們生活的便利性,用於標識本地時間。

冬令時,夏令時出於節省能源消耗的目的提出的概念,可能會讓每年的某一段時間內本地時間會前進乙個小時。

在軟體開發中,傳遞時間的時候為了無歧義,應該全部採用時間戳。在需要展示給使用者的時候,需要考慮到使用者本地的時區及冬令時、夏令時的情況計算出正確的本地時間。

參考:

Java時間處理

1 dateformat擔當重任,怎樣格式化都行system.out.println new dateformat yyyy mm dd format newdate 2 從字串到日期型別的轉換 system.out.println new dateformat yyyymmdd parse 201...

Java中日期時間的處理

1.獲取系統時間可以通過calendar或者date預設建構函式或者例項得到,不過現在日期主要還是借助於calendar來處理。另外還可以得到當前日期是一周的第幾天 從星期天開始 一月以及一年的第幾天 public static string getcurrenttime public static...

java時間處理工具類

public class timehelper 預設當前時間 精確到秒 return 當前時間 public static string getnow 通過指定的格式獲取當前時間字串 param format 日期字串格式 return 當前時間字串 public static string get...