Android SimpleDataFormat无法解析datetime(在sun 1.6 jre上工作正常)
你知道为什么Android 2.2上的以下功能失败了吗 java.text.ParseException:不可解析日期:2011-02-16 11:38:03.328 UTC …虽然它在sun JRE 1.6上运行良好Android SimpleDataFormat无法解析datetime(在sun 1.6 jre上工作正常),android,date-format,simpledateformat,Android,Date Format,Simpledateformat,你知道为什么Android 2.2上的以下功能失败了吗 java.text.ParseException:不可解析日期:2011-02-16 11:38:03.328 UTC …虽然它在sun 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:
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();
}
如前所述,ion注释可以使测试更加简单:
new SimpleDateFormat("z").parse("UTC")
这会引发一个解析异常。我使用的是nexus one设备,android 2.2可以用它来代替
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z");
请尝试按以下方式指定区域设置:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S z", Locale.ENGLISH);
我已经复制了这个代码,并得到了铸造异常 试试我的密码
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();
}
我希望这对您有所帮助我现在有一个解决办法:
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’”,如果第一次解析失败,则尝试“yyy-MM-dd HH:MM:ss.S z”
感谢您的所有回答您的代码对我来说运行正常,它是针对安卓1.5jar编译的。对于上述类,您使用什么导入?您是在设备上运行还是在模拟器上运行?在nexus one设备上运行。导入正如您所期望的那样,实际上可以使测试更加简单。新的SimpleDataFormat(“z”).parse(“UTC”)UTC似乎不受支持,这非常令人惊讶……在Andriod 2.2中引发了异常,但在标准sun中却没有JRE@user508047请列出您在代码示例中列出的类的导入。您可以使用多个同名的类。我只知道一个SimpleDataFormat?DateFormat和SimpleDateFormat都是从包java.text导入的抱歉,看不出这有什么帮助?亲爱的,您可以根据代码更改日期格式来继续使用此代码。如果您遇到强制转换异常,则您一定使用了错误的导入。我是否将日历对象设置为时区没有区别。我收到格式为“2011-02-16 11:38:03.328 UTC”的字符串,必须对其进行解析。这在Android 2.2上失败。正如我在我的原始问题中添加的一样,以下一行程序在Android中失败,但在sun jvm新SimpleDataFormat(“z”).parse(“UTC”)上没有。我现在有一个解决方法如果我需要使用locale istanbul,我如何才能做到这一点,因为locale.turkey或istanbul不存在。很抱歉我需要它?因为我写的是dateformat模板字符串