【问题标题】:Unable to parse this date无法解析此日期
【发布时间】:2013-06-10 12:00:53
【问题描述】:

我得到这种格式的日期14-MAY-13 01.17.16.250000 PM

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yy hh:mm:ss aaa");
  simpleDateFormat.parse("14-MAY-13 01.17.16.250000 PM")

给我这个例外

java.text.ParseException: Unparseable date: "14-MAY-13 01.17.16.250000 PM" ..simpledateformat应该是什么格式?

【问题讨论】:

  • 你的字符串格式和格式不匹配。

标签: java date-format simpledateformat


【解决方案1】:

试试

new SimpleDateFormat("dd-MMM-yy hh.mm.ss.SSSSSS aaa");

【讨论】:

    【解决方案2】:

    必须更正格式(有关详细信息,请参阅javadoc)。您还应该将语言环境设置为SimpleDateFormat,以确保使用正确的语言解析月份。

    new SimpleDateFormat("dd-MMM-yy hh.mm.ss.SSSSSS aaa", Locale.US);
    

    如果您不提供语言环境,SimpleDateFormat 将使用系统的默认语言环境,该语言环境可能不是给定字符串输入的语言环境。

    【讨论】:

    • 其实这是一个常见的错误。服务器在Locale.US 下运行,开发人员有一个可能与输入字符串相同的其他语言环境。只有在目标环境上运行时才会发现问题。
    【解决方案3】:

    您需要使用SSSSSS 表示毫秒并将: 替换为. 以匹配此部分01.17.16.250000

    SimpleDateFormat simpleDateFormat = 
                     new SimpleDateFormat("dd-MMM-yy hh.mm.ss.SSSSSS aaa");
    

    【讨论】:

      【解决方案4】:

      在您的格式字符串中,您期望 hh:mm:ss,但在您的输入字符串中,您有 hh.mm.ss,而且您也没有包括毫秒。

      所以格式字符串应该是dd-MMM-yy hh.mm.ss.SSSSSS aaa

      【讨论】:

        【解决方案5】:

        简单的日期格式和日期格式应该是一样的,试试这个

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yy hh:mm:ss:SSSSSS aaa");
        
        Date d = simpleDateFormat.parse("14-MAY-13 01:17:16:250000 PM");
        

        【讨论】:

          猜你喜欢
          • 2019-09-13
          • 1970-01-01
          • 1970-01-01
          • 2018-01-30
          • 1970-01-01
          相关资源
          最近更新 更多