基本上,我希望我的结果是我在 2012-10-23 打印的结果。然而,它是非常有线的。 这是我的代码:
SimpleDateFormat ft = new SimpleDateFormat("YYYY-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(2012, 10, 22);
cal.add(Calendar.DATE, 1);
Date startDate = new Date();
startDate = cal.getTime();
String date = ft.format(startDate).toString();
System.out.println(date);
我想打印2012-10-23,但结果是2012-11-23。
有人能告诉我为什么它会自动增加 1 个月吗?谢谢。
最佳答案
Calendar
类(class)月份从 0 开始,而不是从 1 开始,因此当将月份设置为 10 时,您设置的不是 10 月而是 11 月。
将代码更改为
cal.set(2012, 9, 22);
或者更好
cal.set(2012, Calendar.OCTOBER, 22);
更多信息:
关于java - 为什么日期自动加1个月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422161/