我使用class Calendar创建Date。但是在我的测试案例中,当我将日期设置为31/12或30/12时,日期的年份是我设置的日期年份+ 1.示例2018-12-29-> 2018-12-29但2018-12-30 -> 2019年12月30日。我不知道为什么?我的代码:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MyClass {
public static void main(String args[]) {
calendarBug(2018, 11, 29);
calendarBug(2018, 11, 30);
}
public static void calendarBug(int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, day);
Date date = calendar.getTime();
System.out.println(new SimpleDateFormat("YYYY-MM-dd").format(date));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
2018-12-29
2019-12-30
Run Code Online (Sandbox Code Playgroud)