Java 在android中解析日期
我有以下代码来传递日期Java 在android中解析日期,java,android,Java,Android,我有以下代码来传递日期 DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss", Locale.getDefault()); Date _pubDate = df.parse(_pubDateE.getFirstChild().getNodeValue()); 但我得到了这个错误: java.text.ParseException:无法解析的日期:“2011年8月12日星期五15:34:47 CEST” 怎么了?日期字
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss", Locale.getDefault());
Date _pubDate = df.parse(_pubDateE.getFirstChild().getNodeValue());
但我得到了这个错误:
java.text.ParseException:无法解析的日期:“2011年8月12日星期五15:34:47 CEST”
怎么了?日期字符串的格式与您指定的格式不同。注意末尾的时区吗?我认为您需要在末尾添加
zzz
(对于时区):
您可能需要:
newsimpledateformat(“EEE,dd-MMM-yyyy-kk:mm:ss-zzz”,Locale.getDefault())代码>您在异常消息的末尾缺少日期格式的时区,即“CEST”部分。
你的代码
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss", Locale.getDefault());
应该是
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss z", Locale.getDefault());
你可能想读书
编辑
在本页的底部,时区格式的解释更加清晰
在junit测试中使用您的错误日期运行了我的代码,它很好地解析了您的日期,还尝试了zzz,并且成功了。我的区域设置是EST,请注意您使用的构造函数可能不支持您的区域设置。根据javadoc:注意:此构造函数可能不支持所有区域设置。要实现完全覆盖,请使用DateFormat类.Hmm中的工厂方法。。奇怪。。。在Eclipse中,它工作得很好。但是如果我在我的Galaxy 2上尝试,我会得到错误
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss z", Locale.getDefault());