1. 程式人生 > >Java處理GMT時間和UTC時間

Java處理GMT時間和UTC時間

時間標準簡介

UTC(世界標準時間)

協調世界時,又稱世界標準時間或世界協調時間,簡稱UTC(從英文“Coordinated Universal Time”/法文“Temps
Universel Coordonné”而來),是最主要的世界時間標準,其以原子時秒長為基礎,在時刻上儘量接近於格林尼治標準時間。

GMT(格林尼治平時)

格林尼治平時(又稱格林尼治平均時間或格林尼治標準時間,舊譯格林威治標準時間;英語:Greenwich Mean
Time,GMT)是指位於英國倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那裡的經線。

理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由於地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能與實際的太陽時有誤差,最大誤差達16分鐘。
由於地球每天的自轉是有些不規則的,而且正在緩慢減速,因此格林尼治時間已經不再被作為標準時間使用。現在的標準時間,是由原子鐘報時的協調世界時(UTC)。

CST(北京時間)

北京時間,China Standard Time,中國標準時間。在時區劃分上,屬東八區,比協調世界時早8小時,記為UTC+8。

不過這個CST這個縮寫比較糾結的是它可以同時代表四個不同的時間: 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’ 被解釋為模式字母,用來表示日期或時間字串元素。文字可以使用單引號 (‘) 引起來,以免進行解釋。””” 表示單引號。所有其他字元均不解釋;只是在格式化時將它們簡單複製到輸出字串,或者在解析時與輸入字串進行匹配。
定義了以下模式字母(所有其他字元’A’ 到’Z’ 和’a’ 到’z’ 都被保留):

字母 日期或時間元素 型別 示例
G Era 標誌符 Text AD
y 年份 Number 1996; 96
M 年份中的月份 Text July; Jul; 07
w 年份中的週數 Number 27
W 月份中的週數 Number 2
D 年份中的天數 Number 189
d 月份中的天數 Number 10
F 月份中的星期 Number 2
E 星期中的天數 Text Tuesday; Tue
a Am/pm 標記 Text PM
H 一天中的小時數(0-23) Number 0
k 一天中的小時數(1-24) Number 24
K am/pm 中的小時數(0-11) Number 0
h am/pm 中的小時數(1-12) Number 12
m 小時中的分鐘數 Number 30
s 分鐘中的秒數 Number 55
S 毫秒數 Number 978
z 時區 General time zone Pacific Standard Time; PST; GMT-08:00
Z 時區 RFC 822 time zone -0800

在實際開發過程中經常會遇到將Date型別的資料轉換為String 型別或將String 型別的日期轉換成Date型別的問題。下面就介紹一下如何將String型別的GMT、GST日期轉換成Date物件。
JDK中提供了SimpleDateFormat類來實現String型別的日期和Date物件之間的互轉。
1.GMT時間轉換

//字串轉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轉字串
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統一時間
//格式化時間
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實現。

相關推薦

Java處理GMT時間UTC時間

時間標準簡介 UTC(世界標準時間) 協調世界時,又稱世界標準時間或世界協調時間,簡稱UTC(從英文“Coordinated Universal Time”/法文“Temps Universel Coordonné”而來),是最主要的世界時間標準

SQL Server 本地時間UTC時間的相互轉換

get gpo () localdate lda code date() post nbsp SET @UTCDate = DATEADD(hour, DATEDIFF(hour,GETDATE(),GETUTCDATE()), @LocalDate) SET @Local

如何利用C語言來獲取當地時間UTC時間 (設當地時間是北京時間

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

如何利用C語言來獲取當地時間UTC時間? (設當地時間是北京時間

#include <stdio.h> #include <time.h> int main() { time_t t = time(NULL); tm *t

QDateTime 本地時間UTC時間轉換問題

        先說一下UTC,搜尋360百科: 協調世界時,又稱世界統一時間、世界標準時間、國際協調時間,簡稱UTC,是以原子時秒長為基礎,在時刻上儘量接近於世界時的一種時間計量系統。1979年12月3日在內瓦舉行的世界無線電行政大會通過決議,確定用“世界協調時間”取代“

本地時間UTC時間 轉換

本地時間轉UTC時間 // yyyy-MM-dd HH:mm:ss 東八區 +8 public static String parseStringToUtc(String string)

如何利用C語言來獲取當地時間UTC時間 (設當地時間是北京時間

                #include  <stdio.h>  #include  <time.h>  int main(){ time_t t = time(NULL);  tm *tp = localtime(&t);   // 北京時間 printf("%d/%

Java時間處理(UTC時間本地時間轉換)

文章內容引用來源: 前言: 本文主要對UTC、GMT、CST等時間概念做簡單的介紹,比較實用的在於本文最後一個小知識點:帶時區格式的時間和本地時間格式兩者之間的轉換方法,再次只是對簡單情況做處理,如果需要處理複雜的時間轉換,可以百度找一下jar包。 1

Java UTCGMT時間Date時間轉換

概念 : 格林尼治標準時間(GMT,舊譯“格林威治平均時間”或“格林威治標準時間”)是指位於倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那裡的經線。 協調世界時(UTC)  英文:Coordinated Universal Time ,別稱:世界統一

全網最全!徹底弄透Java處理GMT/UTC日期時間

[TOC] ![](https://img-blog.csdnimg.cn/20210118055156568.jpg#pic_center) # 前言 你好,我是A哥(YourBatman)。 本系列的目的是明明白白、徹徹底底的搞定日期/時間處理的幾乎所有case。[上篇文章](https://m

java UTC時間local時間相互轉換

互轉 cat color except static 相互轉換 clas AS mil 1、local時間轉UTC時間 /** * local時間轉換成UTC時間 * @param localTime * @return *

JAVA UTC時間本地時間

UT - 世界時 Universal Time 世界時是最早的時間標準。 在1884年,國際上將1s確定為全年內每日平均長度的1/8.64×104。以此標準形成的時間系統,稱為世界時,即 UT1。 1972年國際上開始使用國際原子時標,從那以後,經過格林

utc時間local 時間互轉

python utc time local time python 1.utc 時間和 local 時間互轉#utc 轉本地時間def utcFlocaltime(utc_time): utc_time = utc_time + datetime.timedelta(hour

UTC時間普通時間的區別

col strong cal 區別 active ron enable shang sha UTC時間 [root@openstack01 ~]# timedatectl Local time: Sat 2018-08-18 23:04:24 C

java 專案時間伺服器時間不一致

  今天線上專案關於時間的幾個任務都出了問題,檢視日誌發現日誌的時間不對,用的是log4j,日誌輸出的時間都早了很長時間。 1 首先先登上伺服器查看了伺服器的系統時間 linux下 date命令 時間正確的。 2 瀏覽網頁發現有個硬體時間,系統時間是指當前Linux Kernel中的時鐘,而硬體時鐘則是主

UTC時間CST時間

UTC時間:世界協調時間(UTC)是世界上不同國家用來調節時鐘和時間的主要時間標準。                :也就是零時區的時間 CST時間:中央標準時間             Central Standard Time (USA) UT-6:00(美國cst時

UTC時間本地時間小結

1、var utc=new Date().getTime()+2880000;//獲取北京時間,但是似乎和獲取的本地時間還相差一個月的毫秒數 2、     這個就是獲取本地時間的毫秒數           var date

java獲得當前時間當前時間前30秒時間

import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; //獲得當前時間和當前時間前30秒時間 SimpleDateFormat df = new Sim

時間UTC時間GMT時間、本地時間、Unix時間

1.UTC時間 與 GMT時間 我們可以認為格林威治時間就是時間協調時間(GMT=UTC),格林威治時間和UTC時間均用秒數來計算的。 2.UTC時間 與 本地時 UTC + 時區差 = 本地時間

Docker Java應用日誌時間容器時間不一致

摘要: 1)在docker容器和系統時間不一致是因為docker容器的原生時區為0時區,而國內系統為東八區。 2)還有容器中執行的java應用打出的日誌時間和通過date -R方式獲取的容器標準時間有八個小時時間差。 也就是容器時間和系統時間一