Java日期的格式String類型GMT,GST換算成日期Date種類


請尊重他人的勞動成果。轉載請注明出處:Java日期格式化之將String類型的GMT,GST日期轉換成Date類型 

http://blog.csdn.net/fengyuzhengfan/article/details/40164721

在實際開發過程中常常會須要將Date類型的數據封裝成XMLJson格式在網絡上進行傳輸,另外在將Date類型的數據存到Sqlite數據庫中后再取出來的時候僅僅能獲取String類型的日期了,這是由於SQLite是無類型的。這樣不得不面對將String 類型的日期轉換成Date類型的問題。以下就介紹一下怎樣將String類型的GMTGST日期轉換成Date對象。

JDK1.1之前能夠使用newDate(“”)來將String類型的日期轉換成Date類型的對象。

但自JDK1.1開始已將不建議這樣做了。以下就介紹一下用SimpleDateFormat類來將String類型的日期轉換成Date對象。

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類型的GMTGST日期轉換成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類型的GMTGST日期的時候須要將第二個參數指定為Locale.USLocale.UKLocale.ENGLISH否則會出現編譯錯誤。

關於第一個參數日期模式是要依據要解析的String類型日期格式不同而不同,當中EEE代表星期。MMM代表月份。dd代表天。HH代表小時。mm代表分鍾,ss代表秒。這里要特別注意的是’GMT’。它代表你要解析的StringGMT格式的時間,假設GST格式能夠使用’ GST’來取代’GMT’

執行效果圖

將String類型的GMT、GST日期轉換成Date對象

 

版權聲明:本文博主原創文章,博客,未經同意不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM