2013-10-23 152 views
1

我試圖解析以下海峽到日期:Android的日期時間解析

2013-10-23T11:00:00EDT 

我使用follwoing這樣做:

String TIMEZONE_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz"; 
Date date = new SimpleDateFormat(TIMEZONE_DATE_TIME_FORMAT, Locale.US).parse(strDate); 

其工作對大多數設備,但對有些人來說好拋出以下異常:

java.text.ParseException: Unparseable date: "2013-10-23T11:00:00EDT" (at offset 19) 

有人可以解釋爲什麼嗎?

回答

1

試試看看這個代碼。這可能會幫助您解決異常

SimpleDateTime format = new SimpleDateTime("yyyy-MM-dd'T'HH:mm:ssX", Locale.US); 
Date date = format.parse(text); 

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ") 
              .withLocale(Locale.US); 
DateTime dateTime = formatter.parseDateTime(text); 

事實上,有一個ISODateTimeFormat類,使這個更簡單:上述選項

DateTimeFormatter formatter = ISODateTimeFormat.dateTimeNoMillis(); 
+0

非哪裏SimpleDateFormat是一個失敗的設備上工作。 – user1935235