Android日期格式错误

fre*_*ril 0 java android simpledateformat

在使用SimpleDateFormat格式化日期时,我得到了正确的日期和月份。但是一年减少了一年。可能是什么问题呢?

public static String getFormattedDate(String date) {

    SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-mm-dd HH:MM:SS");
    Date testDate = null;
    String newFormat="space";

    try {
        testDate = sourceFormat.parse(date);
        SimpleDateFormat formatter = new SimpleDateFormat("d/MMM/yyyy");
        newFormat = formatter.format(testDate);
        Log.i("Formatted Date",newFormat);
    }catch(Exception ex){
        ex.printStackTrace();
    }

    return newFormat;
}
Run Code Online (Sandbox Code Playgroud)

实际日期和格式化日期为

 01-04 15:34:00.233 21858-21858/com.cube_me.cubeme I/Actual Date: 2016-12-19 00:00:00
 01-04 15:34:00.233 21858-21858/com.cube_me.cubeme I/Formatted Date: 19/Dec/2015
Run Code Online (Sandbox Code Playgroud)

cyb*_*6pl 5

这是因为您在这里有一个错误:

yyyy-mm-dd HH:MM:SS
Run Code Online (Sandbox Code Playgroud)

它应该是

yyyy-MM-dd HH:mm:ss
Run Code Online (Sandbox Code Playgroud)

因此,您将分钟(mm)和月份(MM)放错了位置。如果您将00作为一个月传递,那么您将获得12月(00在01之前,因此将其解析为12),即上一年是正确的。

也是SS毫秒,并ss为您提供秒。

这里检查字母表。