2013-10-23 150 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