SimpleDateFormat API显示错误的日期

Moh*_*Raj -2 java simpledateformat

尝试使用SimpleDateFormat API格式化几个日期

String[] dates={"18-01-2015","9-02-2015","21-03-2015"};
for(String s:dates){
    SimpleDateFormat format=new SimpleDateFormat("DD-MM-yyyy");
    Date date=format.parse(s);
    System.out.println(date);
}
Run Code Online (Sandbox Code Playgroud)

输出:

Sun Jan 18 00:00:00 IST 2015
Fri Jan 09 00:00:00 IST 2015
Wed Jan 21 00:00:00 IST 2015
Run Code Online (Sandbox Code Playgroud)

您可以注意到它显示的所有日期是JAN而不是FEB/MAR.

Jon*_*eet 6

你想要dd而不是DD在构建时SimpleDateFormat.DD意思是"一年中的一天",而不是"一个月中的某一天".一次SimpleDateFormat看起来像是做错事,你应该咨询文件,真正检查图案文字,真的很用心-尤其是资本.

(当然还有其他一些可能出错的事情 - 我有一篇最常见的博文.)