java日期格式yyyy-mm-dd.hh.MM.ss.ms

时间:2015-08-07 05:25:54

标签: java date datetime

我收到一个像这样的字符串日期:2015-07-22.06.05.56.344。我写了一个像这样的解析代码

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd.hh.MM.ss.ms");
    try {
        Date date = sdf.parse("2015-07-22.06.05.56.344");
        System.out.println(date);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我得到了这样的输出:

Fri May 22 06:03:44 IST 2015

为什么它读错了?这是我的代码或java无法识别这种日期格式的问题吗?

3 个答案:

答案 0 :(得分:4)

您需要使用MM数月和mm几分钟。

尝试将SimpleDateFormat设置为:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hh.mm.ss.SSS");

检查javadoc以获取更多信息: SimpleDateFormat

答案 1 :(得分:3)

你的模式错误。该模式区分大小写。

mm代表分钟 MM站了一个月。

SS是毫秒

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hh.mm.ss.SSS");

有关详细信息,请参阅the SimpleDateFormat documentation

答案 2 :(得分:3)

  • MM / mm的方式错误,mm用于"分钟为小时"并且MM用于"年月"
  • SS用于"毫秒" (或ms,这意味着什么)
  • 我还建议使用HH代替hhHH用于"小时(0-23)"

所以,使用......

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.HH.mm.ss.SS");

它为我输出Wed Jul 22 06:05:56 EST 2015