Android日期时间解析

时间:2013-10-23 15:51:31

标签: android date simpledateformat

我正在尝试将以下str解析为Date:

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 个答案:

答案 0 :(得分: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();