DateFormat给出的值不正确

时间:2015-07-08 11:24:15

标签: java

我想将String转换为Date。我的代码:

    String maturityDate = "20150722";
    SimpleDateFormat formatter = new SimpleDateFormat("yyyymmdd");
    Date date = formatter.parse(maturityDate);
    System.out.println(date);

预期结果:

Input 20150722
Output Wed Jul 22 00:07:00 IST 2015

实际结果:

Input 20150722
Output Thu Jan 22 00:07:00 IST 2015

可能是什么原因?

1 个答案:

答案 0 :(得分:5)

  

可能是什么原因?

原因是m字母表示SimpleDateFormat模式中的分钟。你的意思是M几个月。

<强>解
将格式从yyyymmdd更改为yyyyMMdd

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");

API中,您会找到完整列表:

M   Month in year   Month   July; Jul; 07
m   Minute in hour  Number  30