2016-05-17 72 views
0

我收到日期格式「星期六2015年5月2日00:00:00 GMT + 0500(巴基斯坦標準時間)」無法解析的日期例外的Java

當我分析這個使用格式

SimpleDateFormat sdf = new SimpleDateFormat(EEE MMM dd yyyy HH:mm:ss zZ (zzzz)) 

我得到unparsable日期異常,這顯然意味着我的格式是錯誤的。有人能告訴我什麼可能是正確的格式。寫什麼「(巴基斯坦標準時間)」。

+2

不能使用'(巴基斯坦標準時間)'在你的日期格式。 GMT +0500足以表示它是巴基斯坦標準時間 – Sanjeev

+0

我以這種格式獲取日期,我無法更改此 –

+1

另一種選擇是切斷'(巴基斯坦標準時間)'並使用其餘日期。它會給你想要的結果 – Sanjeev

回答

0

這是解析你的約會方式一:

public class Test { 

    static final String sample_date = "Sat May 02 2015 00:00:00 GMT+0500 (Pakistan Standard Time)".replace("GMT", "") 
      .replace(" (Pakistan Standard Time)", ""); 

    public static void main(String[] args) throws ParseException { 

     SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss Z"); 
     ParsePosition position = new ParsePosition(0); 
     Date d = sdf.parse(sample_date, position); 
     System.out.println(d); 
     System.out.println(position); 
     if (position.getErrorIndex() != -1) { 
      System.out.println(sample_date.substring(position.getErrorIndex())); 
     } 
     System.out.println(sdf.parse(sample_date)); 
    } 
} 

參考:Java - unparseable date, need format to match "GMT-0400"

+0

我已經在評論中得到正確的答案,但你的答案是唯一的答案一個我接受,所以我認爲這@Sanjeev和未知的也給出了正確的答案 –