詳解Java中的時間處理與時間標(biāo)準(zhǔn)
UTC (世界標(biāo)準(zhǔn)時間)
協(xié)調(diào)世界時,又稱世界標(biāo)準(zhǔn)時間或世界協(xié)調(diào)時間,簡稱UTC(從英文“Coordinated Universal Time”/法文“Temps
Universel Coordonné”而來),是最主要的世界時間標(biāo)準(zhǔn),其以原子時秒長為基礎(chǔ),在時刻上盡量接近于格林尼治標(biāo)準(zhǔn)時間。
GMT (格林尼治平時)
格林尼治平時(又稱格林尼治平均時間或格林尼治標(biāo)準(zhǔn)時間,舊譯格林威治標(biāo)準(zhǔn)時間;英語:Greenwich Mean Time,GMT)是指位于英國倫敦郊區(qū)的皇家格林尼治天文臺的標(biāo)準(zhǔn)時間,因為本初子午線被定義在通過那里的經(jīng)線。
理論上來說,格林尼治標(biāo)準(zhǔn)時間的正午是指當(dāng)太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由于地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能與實際的太陽時有誤差,最大誤差達(dá)16分鐘。
由于地球每天的自轉(zhuǎn)是有些不規(guī)則的,而且正在緩慢減速,因此格林尼治時間已經(jīng)不再被作為標(biāo)準(zhǔn)時間使用?,F(xiàn)在的標(biāo)準(zhǔn)時間,是由原子鐘報時的協(xié)調(diào)世界時(UTC)。
CST (北京時間)
北京時間,China Standard Time,中國標(biāo)準(zhǔn)時間。在時區(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 標(biāo)志符 | 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 標(biāo)記 | 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中的時間處理與時間標(biāo)準(zhǔn)的詳細(xì)內(nèi)容,更多關(guān)于Java時間處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java實現(xiàn)一鍵生成表controller,service,mapper文件
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實現(xiàn)一鍵生成表controller,service,mapper文件,文中的示例代碼講解詳細(xì),需要的可以收藏一下2023-05-05MP(MyBatis-Plus)實現(xiàn)樂觀鎖更新功能的示例代碼
這篇文章主要介紹了MP(MyBatis-Plus)實現(xiàn)樂觀鎖更新功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01SpringBoot favicon Chrome設(shè)置問題解決方案
在本篇文章里小編給大家分享的是關(guān)于SpringBoot favicon Chrome設(shè)置問題實例內(nèi)容,小的朋友們可以參考學(xué)習(xí)下。2020-02-02