【问题标题】:Java SimpleDateFormat Exception: unparseable date [closed]Java SimpleDateFormat 异常:无法解析的日期 [关闭]
【发布时间】:2016-02-02 09:23:36
【问题描述】:

我试图让 Java 读取格式如下的日期: 2012 年 3 月 8 日星期四 13:33:25 但是得到一个无法解析的异常。代码如下:

SimpleDateFormat formatter2 = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy", Locale.ENGLISH);
String currentDate = "Thu Mar 8 13:33:25 2012";
Date date2 = formatter.parse(currentDate);

它会抛出以下异常:Exception in thread "main" java.text.ParseException: Unparseable date: "Thu Mar 8 13:33:25 2012"

有人可以帮帮我吗?我试过把“d”改成“dd”,还是不行。

【问题讨论】:

  • 看来您使用的是 formatter 而不是 formatter2
  • 你有 formatter2 SimpleDateFormat 对象并且你正在使用 formatter 来解析。 formatter 来自哪里?
  • 如果您使用 formatter2 而不是 formatter,则此代码有效。
  • 当我使用 formatter2 时,我得到绝对 no 错误并且代码运行。
  • 谢谢大家 - 这是正确的。我有另一个格式化程序对象并且不小心使用了它。唷。

标签: java simpledateformat parseexception


【解决方案1】:

您没有使用示例中指定的 formatter2 变量。

您的代码在使用 formatter2 时有效。

SimpleDateFormat formatter2 = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy", Locale.ENGLISH);
String currentDate = "Thu Mar 8 13:33:25 2012";
Date date2 = formatter2.parse(currentDate);
System.out.println(date2);

结果:

2012 年 3 月 8 日星期四 13:33:25 CAT

【讨论】:

    【解决方案2】:
    String pattern = "EEEEE MMMMM yyyy HH:mm:ss.SSSZ";
    SimpleDateFormat simpleDateFormat =
            new SimpleDateFormat(pattern, new Locale("en", "IN"));
    
    String date = simpleDateFormat.format(new Date());
    System.out.println(date);
    

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多