【问题标题】:SimpleDateFormat: Unparseable date MMMM yyyy [duplicate]SimpleDateFormat:无法解析的日期 MMMM yyyy [重复]
【发布时间】:2016-01-06 20:34:26
【问题描述】:

我需要解析字符串"October 2015",但我得到的是java.text.ParseException。我一直在寻找答案,但我看到的所有示例都在字符串中包含“day”。我需要在不指定日期的情况下转换此字符串。

这是我的代码:

SimpleDateFormat format = new SimpleDateFormat("MMMM yyyy");

System.out.println("La fecha despues de convertida " + format.parse(search.getFecha()));

这是个例外:

java.text.ParseException: Unparseable date: "October 2015"

【问题讨论】:

  • 你用的是什么格式? "MMMM yyyy" 对我来说似乎没问题
  • 您可以使用 StringTokenizer 类以空格字符作为分隔符来获取月份和年份
  • 我编辑了问题。
  • 您是否至少尝试过阅读重复的问题及其最佳答案?我会给你一个提示:由于你不是来自讲英语的国家(根据你的个人资料),你的 JVM 大概使用了一个 Locale,它不理解 "October" 并且有它的那个月的自己的话。所以试着告诉他使用“知道”并理解这个词的语言环境。重复的问题向您展示了如何做到这一点。 (重新发布以修复令人讨厌的错字)

标签: java date parsing simpledateformat


【解决方案1】:

你所要做的就是指定你的日期模式,

DateFormat dateFormat = new SimpleDateFormat("MMMM yyyy");
dateFormat.parse("October 2014");

【讨论】:

  • 它对我不起作用...我编辑了问题。
【解决方案2】:

使用 'yyyy' 而不是 'YYYY'

在 Java 1.6 及之前的版本中,'YYYY' 用于解析一周中的年份,在后续版本中,它已停用。

编辑:我把外壳弄混了。请忽略此答案,因为它显然与此问题完全无关。

【讨论】:

  • 您能否引用关于“yyyy”已用于一年中的一周的声明?在Java 6Java 5 我看到w 用于“一年中的一周”。
  • 所以在 Java 1.6 中 yyyy 被用于“一周中的一年”,即使源代码有其他建议,而在 1.7 中 YYYY 替换了它,因为现在是“一周中的一年” “?有趣。
  • stackoverflow.com/questions/27739514/… 搞混了,对不起。
猜你喜欢
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
相关资源
最近更新 更多