blz?
Olha quando eu tento fazer isso:
Calendar calendar = Calendar.getInstance(new Locale("pt", "BR"));
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.println("mes: " + calendar.get(Calendar.MONTH));
Ele imprime mes 2 sendo que fevereiro seria 1.
Para os outros meses funciona normal.
Alguem sabe porque?
Agradeço a quem puder ajudar!
Não existe nada de errado!
Acrescente a seguinte linha no final:
System.out.println(calendar.getTime());
Você vai reparar que a data configurada é dois de março!
Por que isso? Bom, estamos no dia 30 de janeiro. Setando o mês pra fevereiro, a data ficaria “30 de fevereiro”. Tanto o interpretador Java quanto nós sabemos que essa data não existe. Consequentemente, a data será normalizada para 2 de março, que é dois dias a mais do que 28 de fevereiro.