2012-08-30 65 views
0

如果我正在做一個非常愚蠢的錯誤,但我似乎無法看到它,我很抱歉。在嘗試使用帶有「yyyy-MM-dd'T'HH:mm:ss.SSSZ」作爲格式字符串的SimpleDateFormat解析2012-08-28T21:52:57.020Z時,我收到了Unparsable日期異常。有人可以請我指出這個問題。在java中轉換UTC時間時解析日期異常

回答

5

我不認爲SimpleDataFormat在分析的字符串作爲一個時區解析「Z」。 :(只格式踏Z爲找到時區的地方。

嘗試格式"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"或嘗試JodaTime具有更好的操控性的時區。

+0

它代表時區:http://docs.oracle.com/javase/6/docs /api/java/text/SimpleDateFormat.html – Vikdor

+0

它的工作現在,我在太急於深入。也許以後。Thanx很多:) – khizar

+0

似乎無法接受答案,dun知道爲什麼:S – khizar

2

最後的'Z'對應於時區。您應該替換「Z」在你的輸入與像IST EST /等時區ID,

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
String date = "2012-08-28T21:52:57.020IST"; 
System.out.println(df.parse(date)); 

output: Tue Aug 28 21:52:57 IST 2012 
+2

在這種情況下'Z'是時區。「GMT」或「GMT + 0」或「+ 0000」,其中SimpleDateFormat僅解析「GMT」。 –