日历月错了

mjg*_*irl 2 java

我尝试在日历后的某些年份设置一个简单的日期:

字符串日期是此metod的参数.

     SimpleDateFormat format = new SimpleDateFormat("dd.mm.yyyy");

    String[] DateTimeParts = date.split(" ");
    String dt = DateTimeParts[0];
    String[] dateParts = dt.split("-");
    int d = Integer.parseInt(dateParts[2]);


    int y = Integer.parseInt(dateParts[0]);
    int m = Integer.parseInt(dateParts[1]);




    Calendar calendar = Calendar.getInstance(); 
    calendar.set(y, m-1, d);
    calendar.add(Calendar.YEAR, years);


    return format.format(calendar.getTime());
}
Run Code Online (Sandbox Code Playgroud)

我的问题是日期返回没有问题,但是月份数字是完全错误的,并且每次运行似乎都变得越来越大!我错过了什么?

Ste*_*man 5

当你使用大写的"M"时,你正在使用小写的"m"月份,即

SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Run Code Online (Sandbox Code Playgroud)

小写"m"用于格式化分钟 - 有关详细信息,请参阅SimpleDateFormat的Java API .