我在Java中使用下面的代码并且工作得很完美!
SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");
但在Android中我遇到了异常!
java.text.ParseException: Unparseable date: "Sun, 11 May 2014 23:11:51 +0430" (at offset 0)
什么错了?!
答案 0 :(得分:4)
问题是如果默认语言环境是英语,代码将正确执行,否则将引发异常。您可以通过添加正确的区域设置来解决此问题。
//Locale locale = new Locale("en-US");
Locale locale = Locale.US;
SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", locale);
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");
可能Android设备有不同的语言设置。考虑在注释中使用常量Locale作为RC,在这种情况下,您不需要额外的变量,直接在构造函数中使用常量。
答案 1 :(得分:1)
SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.US);
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");
如果设备上的区域设置是德语,例如,如果您解析此日期,则会执行代码:
SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.GERMAN);
Date date = format.parse("So, 11 Mai 2014 23:11:51 +0430");