Android API 25 但不是 22 或 23 中的无法解析的日期异常
Unparseable date exception in Android API 25 but not 22 or 23
我一直在开发我的应用程序并使用 Api 22 and 23
的模拟器和设备进行测试,但是当我今天在 API 25
或 Version 7.1 Nougat
的设备上进行测试时,我突然遇到以下异常:
W/System.err: java.text.ParseException: Unparseable date: "2017-02-08 18:39:21+00"
W/System.err: at java.text.DateFormat.parse(DateFormat.java:358)
我正在使用以下模式 "yyyy-MM-dd HH:mm:ssZ"
解析日期 "2017-02-08 18:39:21+00"
,在我在模拟器 运行 API 25
中进行测试之前,它一直运行良好,我也尝试过它在 Nexus 6P
运行 相同的版本上,我得到相同的异常。
下面这个方法是API 25
上出现异常的地方。它在我正在测试的其他版本上运行良好。
private static final String SERVER_DATE_FORMAT = "yyyy-MM-dd HH:mm:ssZ";
public static Date javaDateFromStringDate(String stringDate) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat(SERVER_DATE_FORMAT, Locale.getDefault());
return format.parse(stringDate);
}
答案确实是每个 the documentation 对 two-digit 个时区使用 X
。感谢评论中的@commonsware 和@blizzard。 Android 似乎并不介意您将 Z
用于 two-digit 时区,但在 Nougat
.
中变得更加严格
我一直在开发我的应用程序并使用 Api 22 and 23
的模拟器和设备进行测试,但是当我今天在 API 25
或 Version 7.1 Nougat
的设备上进行测试时,我突然遇到以下异常:
W/System.err: java.text.ParseException: Unparseable date: "2017-02-08 18:39:21+00"
W/System.err: at java.text.DateFormat.parse(DateFormat.java:358)
我正在使用以下模式 "yyyy-MM-dd HH:mm:ssZ"
解析日期 "2017-02-08 18:39:21+00"
,在我在模拟器 运行 API 25
中进行测试之前,它一直运行良好,我也尝试过它在 Nexus 6P
运行 相同的版本上,我得到相同的异常。
下面这个方法是API 25
上出现异常的地方。它在我正在测试的其他版本上运行良好。
private static final String SERVER_DATE_FORMAT = "yyyy-MM-dd HH:mm:ssZ";
public static Date javaDateFromStringDate(String stringDate) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat(SERVER_DATE_FORMAT, Locale.getDefault());
return format.parse(stringDate);
}
答案确实是每个 the documentation 对 two-digit 个时区使用 X
。感谢评论中的@commonsware 和@blizzard。 Android 似乎并不介意您将 Z
用于 two-digit 时区,但在 Nougat
.