Calendar set(2020,8,31,0,0,0);结果缺不是9月而是10月为什么

Calendar calendar =Calendar.getInstance();
        calendar.clear();
        calendar.set(2020,8,31,0,0,0);
        System.out.println(calendar.getTime());

结果
Thu Oct 01 00:00:00 CST 2020
这是为什么啊

java calendar中的月是从0开始的

Calendar中月份是0-11,月份需要在原来的基础上+1才行

9月没有31日,算到了10月1日

所以jdk8之后建议用LocalDate和LocalDateTime,LocalTime用的比较少