我尝试在日历后的某些年份设置一个简单的日期:
字符串日期是此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)
我的问题是日期返回没有问题,但是月份数字是完全错误的,并且每次运行似乎都变得越来越大!我错过了什么?
当你使用大写的"M"时,你正在使用小写的"m"月份,即
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Run Code Online (Sandbox Code Playgroud)
小写"m"用于格式化分钟 - 有关详细信息,请参阅SimpleDateFormat的Java API .