2011-07-15 72 views
1

我有從如下格式的輸入字符串解析日期問題GMT時間到日期:解析字符串使用的SimpleDateFormat

String input = "Fri Jul 15 12:00:00 GMT+300 2011"; 
String dateFormat = "EEE MMM d HH:mm:ss z yyyy"; 
Date date = new SimpleDateFormat(dateFormat).parse(input); 

拋出一個異常:

java.text.ParseException: Unparseable date: "Fri Jul 15 12:00:00 GMT+300 2011" 
    at java.text.DateFormat.parse(DateFormat.java:337) 

我敢打賭,它與GMT字符串有關。我想我已經嘗試過zzzz,zZzzzZ。 有什麼想法?輸入GMT+300甚至是標準的有效輸入格式?

+0

我閱讀[文檔](http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html#timezone),但不能得到它解析。 – Kimi

+3

從閱讀文檔看來,GMT + 300無效,但GMT + 3:00會有效。有什麼辦法可以首先處理輸入字符串的時區部分,以便它實際上有效嗎? –

+0

GMT + 300不是有效格式,+0300是 – Vlad

回答

2

問題是GMT+300根據Java Timezone specification不是有效的GMT字符串。

解決方案:操作輸入字符串的時區部分。 GMT+300 ==>GMT+3:00