SimpleDateFormat:不可parsing的dateexception

看了几个现有的post后,我仍然无法让我的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结束。 以下是debugging消息的输出:

06-09 23:52:17.478:DEBUG / DEBUG(2436):java.text.ParseException:Unparseable date:
06-09 23:52:17.478:DEBUG / DEBUG(2436):Wed,08 Jun 2011 03:23:55 -0500

区域设置ist设置和模式看起来不错。 我错在哪里?

这是解决scheme:

  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}”,“”) ,它从parsing的string中删除控制字符。 奇怪的是,我没有看到string来自xml中的记事本++的任何字符。 但是,显然有一些东西,现在正在工作。

感谢所有的帮助!

检查您的input非打印字符,如选项卡(而不是空间),等等。有时它不能parsing的原因与数字格式化很多,很多与意想不到的字符(你可以'总是看到)。

考虑到一些人已经报告“为我工作”(@Thanks Bozho!),我强烈怀疑你的inputstring中的不可打印的字符。 谁知道,你可能有一个embedded在那里的垂直标签!