1. 程式人生 > >GMT & 時間日期格式

GMT & 時間日期格式

GMT & 時間日期格式

GMT:格林尼標準時間

北京時間=GMT時間+8小時

格林尼治平均時(GMT, Greenwich Mean Time) 

格林威治是英國倫敦泰晤士河南岸的一個地方,由於從19世紀開始,因為世界各國來往頻繁,而歐洲大陸、美洲大陸和亞洲大陸都有各自的時區,所以為免混亂,各國的代表就在1884 年在美國華盛頓召開了國際大會,通過協議選出倫敦的格林威治,作為全球時間的中心點,格林威治標準時間因而誕生。所以有GMT功能的腕錶就是說腕錶擁有其中的小時錶盤可以顯示GMT時間。

GMT時間就是英國格林威治時間,也就是世界標準時間,是本初子午線上的地方時,是0時區的區時,與我國的標準時間北京時間(東八區)相差8小時,即晚8小時。

SimpleDateFormat類的概述

SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文字)、解析(文字 -> 日期)和規範化。

SimpleDateFormat 使得可以選擇任何使用者定義的日期-時間格式的模式。

日期和時間模式

日期和時間格式由日期和時間模式 字串指定。在日期和時間模式字串中,未加引號的字母 'A' 到'Z' 和'a' 到'z' 被解釋為模式字母,用來表示日期或時間字串元素。文字可以使用單引號 (') 引起來,以免進行解釋。"''" 表示單引號。所有其他字元均不解釋;只是在格式化時將它們簡單複製到輸出字串,或者在解析時與輸入字串進行匹配。

定義了以下模式字母(所有其他字元'A' 到'Z' 和'a' 到'z' 都被保留)

字母

日期或時間元素

表示

示例

G

Era標誌符

Text

AD

y

Year

1996; 96

M

年中的月份

Month

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

示例

以下示例顯示瞭如何在美國語言環境中解釋日期和時間模式。給定的日期和時間為美國太平洋時區的本地時間 2001-07-04 12:08:56。

日期和時間模式

結果

"yyyy.MM.dd G 'at' HH:mm:ss z"

2001.07.04 AD at 12:08:56 PDT

"EEE, MMM d, ''yy"

Wed, Jul 4, '01

"h:mm a"

12:08 PM

"hh 'o''clock' a, zzzz"

12 o'clock PM, Pacific Daylight Time

"K:mm a, z"

0:08 PM, PDT

"yyyyy.MMMMM.dd GGG hh:mm aaa"

02001.July.04 AD 12:08 PM

"EEE, d MMM yyyy HH:mm:ss Z"

Wed, 4 Jul 2001 12:08:56 -0700

"yyMMddHHmmssZ"

010704120856-0700

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"

2001-07-04T12:08:56.235-0700

將String型別的GMT、GST日期轉換成Date物件

String stringDate = "Thu Oct 16 07:13:48 GMT 2014";
SimpleDateFormat sdf = newSimpleDateFormat("EEE MMM ddHH:mm:ss 'GMT' yyyy",Locale.US);
Date date =sdf.parse(stringDate);
//     System.out.println(date.toString());
sdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");    
System.out.println(sdf.format(date));

程式碼分析:

在例項化SimpleDateFormat類的時候需要指定兩個引數,第一個引數是要解析的日期模式,第二個引數是指定語言環境的。在有些時候第二引數是可以省略的,但在解析String型別的GMT或GST日期的時候需要將第二個引數指定為Locale.US或Locale.UK或Locale.ENGLISH否則會出現編譯錯誤。

關於第一個引數日期模式是要根據要解析的String型別日期格式不同而不同,其中EEE代表星期 ,MMM代表月份,dd代表天,HH代表小時,mm代表分鐘,ss代表秒,這裡要特別注意的是’GMT’,它代表你要解析的String是GMT格式的時間,如果GST格式可以使用’ GST’來代替’GMT’。

==========END==========