当前位置: 首页 > 面试题库 >

无法解析的日期

宋宇
2023-03-14
问题内容

我有一个字符串日期“ 31-Dec”和模式“ dd-MMM”。接下来的代码

DateFormat formatter = new SimpleDateFormat(pattern);
formatter.setTimeZone(timeZone);
formatter.parse(input);

产生异常

java.text.ParseException: Unparseable date: "31-Dec"
    at java.text.DateFormat.parse(DateFormat.java:337)....

我做错什么了?

谢谢!


问题答案:

一个问题可能是您Locale不是英语。试试这个:

DateFormat formatter = new SimpleDateFormat("dd-MMM", Locale.ENGLISH);
try {
    System.out.println(formatter.parse("31-Dec"));
} catch (ParseException e) {
    e.printStackTrace();
}

这为我返回:

1970年12月31日星期四00:00:00欧洲中部时间

由于日期字符串中缺少年份,因此您会看到它会自动插入1970为年份。



 类似资料:
  • 问题内容: 我正在尝试解析一个日期,但是奇怪的是我遇到了一个例外。 这是代码: 例外是: 我已经阅读了文档,我认为我的模式是正确的。所以我不明白… 问题答案: 这可能是因为你计算机上的默认语言环境不是英语。 你应该使用: 代替。

  • 问题内容: 我收到以下错误:“ java.text.ParseException:无法解析的日期:“ 2011年8月31日09:53:19””具有以下格式: 有人看到这个问题吗? 问题答案: 确保您使用正确的语言环境。(构造函数使用 系统默认的语言环境 ,它可能不是您要使用的 语言环境 。) 这在我的机器上工作正常: (例如,使用时会产生。)

  • 问题内容: 我想将Twitter响应中的日期字符串转换为Date对象,但是我总是得到ParseException,并且看不到错误! 输入字符串:2010年12月23日星期四18:26:07 +0000 模式: 方法: 我也尝试过此方法:http : //friendpaste.com/2IaKdlT3Zat4ANwdAhxAmZ,但结果相同。 我在Mac OS X上使用Java 1.6。 干杯,

  • 问题内容: 我目前正在从事一些简单的项目,并且在以下字符串中有日期: 并希望将此字符串转换为对象。我正在使用以下代码行来做到这一点。我搜索了站点,找到了解决方法: 但是我可能做错了,因为我总是会遇到异常: 这似乎是我正在使用的模式的问题,但尝试了不同的模式,但没有任何效果。 问题答案: 某些字段(例如,星期几字段和/或AM / PM标记)可能与您的默认字段不匹配。具有方法getErrorOffse

  • 我遇到一个问题 错误:(16,10)java:log无法解析

  • 问题内容: 在照顾了几个现有的帖子之后,我仍然无法使我的SimpleDateFormat解析器正常工作。这是代码: 我总是以ParseException结尾。这是调试消息的输出: 06-09 23:52:17.478:DEBUG / DEBUG(2436):java.text.ParseException:无法解析的日期:06-09 23:52:17.478:DEBUG / DEBUG(2436)