为什么这个Calendar类的行为很奇怪

Kum*_*tra 3 java calendar

Calendar c = Calendar.getInstance();
c.set(2019, 12, 29);
Run Code Online (Sandbox Code Playgroud)

我什么时候c.getTime()得到以下输出...

输出:

Wed Jan 29 17:15:27 IST 2020 //应该是2019年

///// --------------------------------------------- ---------------- //////

Calendar c = Calendar.getInstance();
c.set(2019, 11, 29);
Run Code Online (Sandbox Code Playgroud)

我什么时候c.getTime()得到以下输出...

输出:

Sun Dec 29 17:18:23 IST 2019

现在我不知道为什么将月份从12日改为11日给了我正确的日期和时间,如果有人能够简单地解释这个问题并且如果可能的话用一个简单的小例子我真的有义务.

das*_*ght 5

a Calendar中的月份是从零开始的

格列高利历和朱利安历的一年中的第一个月是1月,即0

假设公历11是12月,12是明年1月,正是你的程序显示的方式.