Java DateFormat的值不正确

Java DateFormat的值不正确,java,Java,我想将字符串转换为日期。我的代码: 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 I

我想将
字符串
转换为
日期
。我的代码:

    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
原因可能是什么

原因可能是什么

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

解决方案
将格式从
yyyyymmdd
更改为
yyyymmdd

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
在中,您将找到完整的列表:

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