在查看了几篇现有的帖子后,我仍然无法让我的 SimpleDateFormat 解析器正常工作。这是代码:
SimpleDateFormat df = new SimpleDateFormat(
"EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
try {
volcanoListDate = df.parse(currentValue);
} catch (ParseException e) {
Log.d("DEBUG", e.toString());
Log.d("DEBUG", currentValue);
}
我总是以 ParseException 结束。这是调试消息的输出:
06-09 23:52:17.478:调试/调试(2436):java.text.ParseException:无法解析的日期:
06-09 23:52:17.478:调试/调试(2436):2011 年 6 月 8 日星期三 03:23:55 -0500
区域设置已设置并且模式看起来不错。我哪里错了?
这是解决方案:
SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
try {
volcanoListDate = df.parse(currentValue.replaceAll("\\p{Cntrl}", ""));
} catch (ParseException e) {
Log.d("VOLCANO_DEBUG", e.toString());
Log.d("VOLCANO_DEBUG", currentValue);
}
重要的变化是.replaceAll("\\p{Cntrl}", "")它从解析的字符串中删除控制字符。
奇怪的是,我在字符串所在的 xml 中用 Notepad++ 没有看到任何这些字符。然而,显然有一些东西现在正在发挥作用。
感谢您的帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)