0

基本上,我希望我的结果是我期望的打印 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 个月吗?谢谢你。

4

1 回答 1

9

Calendar班级月份从 0 开始,而不是从 1 开始,因此当将月份设置为 10 时,您设置的不是十月而是十一月。

将您的代码更改为

cal.set(2012, 9, 22);

甚至更好

cal.set(2012, Calendar.OCTOBER, 22);

更多信息:

于 2013-08-24T19:13:07.660 回答