我正在尝试将以下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)
有人可以解释原因吗?
答案 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();