詳解Java中的時間處理與時間標準
UTC (世界標準時間)
協(xié)調(diào)世界時,又稱世界標準時間或世界協(xié)調(diào)時間,簡稱UTC(從英文“Coordinated Universal Time”/法文“Temps
Universel Coordonné”而來),是最主要的世界時間標準,其以原子時秒長為基礎(chǔ),在時刻上盡量接近于格林尼治標準時間。
GMT (格林尼治平時)
格林尼治平時(又稱格林尼治平均時間或格林尼治標準時間,舊譯格林威治標準時間;英語:Greenwich Mean Time,GMT)是指位于英國倫敦郊區(qū)的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經(jīng)線。
理論上來說,格林尼治標準時間的正午是指當(dāng)太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由于地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能與實際的太陽時有誤差,最大誤差達16分鐘。
由于地球每天的自轉(zhuǎn)是有些不規(guī)則的,而且正在緩慢減速,因此格林尼治時間已經(jīng)不再被作為標準時間使用?,F(xiàn)在的標準時間,是由原子鐘報時的協(xié)調(diào)世界時(UTC)。
CST (北京時間)
北京時間,China Standard Time,中國標準時間。在時區(qū)劃分上,屬東八區(qū),比協(xié)調(diào)世界時早8小時,記為UTC+8。
不過這個CST這個縮寫比較糾結(jié)的是它可以同時代表四個不同的時間: Central Standard Time (USA) UT-6:00 Central Standard Time (Australia) UT+9:30 China Standard Time UT+8:00 Cuba Standard Time UT-4:00
Java Date使用UTC時間,如 Tue Jan 05 14:28:41 CST 2016 表示China Standard Time UT+8:00 。
Java時間處理
日期和時間模式 日期和時間格式由日期和時間模式 字符串指定。在日期和時間模式字符串中,未加引號的字母 ‘A’ 到’Z’ 和’a’ 到’z’ 被解釋為模式字母,用來表示日期或時間字符串元素。文本可以使用單引號 (‘) 引起來,以免進行解釋。””” 表示單引號。所有其他字符均不解釋;只是在格式化時將它們簡單復(fù)制到輸出字符串,或者在解析時與輸入字符串進行匹配。
定義了以下模式字母(所有其他字符’A’ 到’Z’ 和’a’ 到’z’ 都被保留):
| 字母 | 日期或時間元素 | 類型 | 示例 |
|---|---|---|---|
| G | Era 標志符 | Text | AD |
| y | 年份 | Number | 1996; 96 |
| M | 年份中的月份 | Text | July; Jul; 07 |
| w | 年份中的周數(shù) | Number | 27 |
| W | 月份中的周數(shù) | Number | 2 |
| D | 年份中的天數(shù) | Number | 189 |
| d | 月份中的天數(shù) | Number | 10 |
| F | 月份中的星期 | Number | 2 |
| E | 星期中的天數(shù) | Text | Tuesday; Tue |
| a | Am/pm 標記 | Text | PM |
| H | 一天中的小時數(shù)(0-23) | Number | 0 |
| k | 一天中的小時數(shù)(1-24) | Number | 24 |
| K | am/pm 中的小時數(shù)(0-11) | Number | 0 |
| h | am/pm 中的小時數(shù)(1-12) | Number | 12 |
| m | 小時中的分鐘數(shù) | Number | 30 |
| s | 分鐘中的秒數(shù) | Number | 55 |
| S | 毫秒數(shù) | Number | 978 |
| z | 時區(qū) | General time zone | Pacific Standard Time; PST; GMT-08:00 |
| Z | 時區(qū) | RFC 822 time zone | -0800 |
在實際開發(fā)過程中經(jīng)常會遇到將Date類型的數(shù)據(jù)轉(zhuǎn)換為String 類型或?qū)tring 類型的日期轉(zhuǎn)換成Date類型的問題。下面就介紹一下如何將String類型的GMT、GST日期轉(zhuǎn)換成Date對象。
JDK中提供了SimpleDateFormat類來實現(xiàn)String類型的日期和Date對象之間的互轉(zhuǎn)。
1.GMT時間轉(zhuǎn)換
//字符串轉(zhuǎn)Date
String stringDate = "Thu Oct 16 07:13:48 GMT 2015";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM ddHH:mm:ss 'GMT' yyyy",Locale.US);
Date date =sdf.parse(stringDate);
System.out.println(date.toString());
//Date轉(zhuǎn)字符串
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));2.
//格式化時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String time = sdf.format(new Date());
System.out.println(time);
//解析時間 2016-01-05T15:06:58+0800
Date date = sdf.parse(time);
System.out.println(date);3.
//T代表后面跟著時間,Z代表UTC統(tǒng)一時間
//格式化時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
String time = sdf.format(new Date());
System.out.println(time);
//解析時間 2016-01-05T15:09:54Z
Date date = sdf.parse(time);
System.out.println(date);同理,我們使用Joda-Time實現(xiàn)。
以上就是詳解Java中的時間處理與時間標準的詳細內(nèi)容,更多關(guān)于Java時間處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java實現(xiàn)一鍵生成表controller,service,mapper文件
這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)一鍵生成表controller,service,mapper文件,文中的示例代碼講解詳細,需要的可以收藏一下2023-05-05
MP(MyBatis-Plus)實現(xiàn)樂觀鎖更新功能的示例代碼
這篇文章主要介紹了MP(MyBatis-Plus)實現(xiàn)樂觀鎖更新功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
SpringBoot favicon Chrome設(shè)置問題解決方案
在本篇文章里小編給大家分享的是關(guān)于SpringBoot favicon Chrome設(shè)置問題實例內(nèi)容,小的朋友們可以參考學(xué)習(xí)下。2020-02-02

