Android SimpleDateFormat无法解析日期时间(在sun 1.6 jre上工作正常)

时间:2011-02-16 12:44:39

标签: android date-format simpledateformat

为什么跟随在Android 2.2上失败的任何想法...

java.text.ParseException:Unparseable date:2011-02-16 11:38:03.328 UTC

......虽然它在太阳JRE 1.6上工作正常吗?

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z");
    try
    {
      Date date = dateFormat.parse("2011-02-16 11:38:03.328 UTC");
    }
    catch (ParseException e)
    {
      e.printStackTrace();
    }

如上所述离子评论,可以使测试更简单:

new SimpleDateFormat("z").parse("UTC")

这会抛出一个解析异常。我正在使用nexus one设备,android 2.2

4 个答案:

答案 0 :(得分:2)

改为使用

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z");

答案 1 :(得分:1)

我现在有一个解决方法:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S 'UTC'");
try
{
  Date date = dateFormat.parse("2011-02-16 11:38:03.328 UTC");
}
catch (ParseException e)
{
  e.printStackTrace();
}

这使我至少可以解析Android 2.2中的日期。我的应用程序已被修改为尝试“yyyy-MM-dd HH:mm:ss.S'UTC'”然后尝试“yyyy-MM-dd HH:mm:ss.S z”如果第一个解析失败

感谢所有答案

答案 2 :(得分:0)

尝试像这样指定语言环境:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z", Locale.ENGLISH);

答案 3 :(得分:0)

我复制了这段代码并得到了例外...

试试我的代码

java.text.SimpleDateFormat format = new SimpleDateFormat(
                    "dd-MM-yyyy");
            java.util.Calendar cal = Calendar.getInstance(new SimpleTimeZone(0,
                    "GMT"));
            format.setCalendar(cal);
java.util.Date date = null;
            try {
                date = format.parse(EditProfile.dateOFBirth);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我希望这可以帮到你