I use class Calendar
to create Date
. But in my test case when i set date is 31/12 or 30/12, year of my date is my set year of date + 1. Example 2018-12-29 -> 2018-12-29 but 2018-12-30 -> 2019-12-30. I don't know why ? My code:
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));
}
}
Output:
2018-12-29
2019-12-30