Kalendarz gregoriański Java zwraca zły miesiąc

Byłem w tym przez kilka godzin i zwraca prawidłowy Rok i Dzień, ale z jakiegoś dziwnego powodu zwraca niewłaściwy miesiąc. Jestem pewien, że jest to prosta poprawka, ale nie mogę tego zrozumieć.

package gregoriancalendar;

import java.util.GregorianCalendar;

public class Calendar8_5 {



public static void main(String[] args){

GregorianCalendar calendar = new GregorianCalendar();
System.out.println("Current Year, Month & Date: ");
System.out.println("Year is " + calendar.get(1));
System.out.println("Month is " + calendar.get(2));
System.out.println("Day is " + calendar.get(5));


calendar.setTimeInMillis(1234567898765L);
//Elapse Time
System.out.println("Set Value of 1234567898765L");
System.out.println("Year is " + calendar.get(1));
System.out.println("Month is " + calendar.get(2));
System.out.println("Day is " + calendar.get(5));
   }
  }

questionAnswers(3)

yourAnswerToTheQuestion