/ / Por que a data de configuração com a agenda me fornece a data errada - java, calendar

Por que a data de configuração com a agenda me fornece a data errada - java, calendar

Estou marcando a data para 2013-01-01 00:00:00, mas a data sai como sexta-feira fev 01 00:00:00 GMT + 01: 00 2013

Por quê?

Calendar calendar = Calendar.getInstance();
calendar.set(2013, 1, 1, 0, 0, 0);
Date startDate = calendar.getTime();

Respostas:

5 para resposta № 1

A numeração do mês começa em 0 nas classes de data do Java. Use as constantes do mês no Calendar classe para evitar este erro comum.

calendar.set(2013, Calendar.JANUARY, 1, 0, 0, 0);

7 para resposta № 2

1 significa Feburary. 0 é janeiro. Meses são indexados a partir de 0. É sempre melhor usar mnemônicos: Calendar.JANUARY


0 para resposta № 3

Apenas uma pegadinha que está relacionada ...

No começo eu pensei que isso não era o mesmo problema que euestava ficando, porque o meu ano estava errado. Eu defini "12" para dezembro, mas como os meses são um deslocamento e começam em 0, o Google Agenda realmente rola esse 12 para janeiro do ano seguinte, portanto, se o ano estiver errado, verifique se seu mês também está errado. poderia estar rolando como o meu fez.

ou seja, setDate (2015, 12, 6) resulta em uma data de 6 de janeiro de 2016

Portanto, USE AS CONSTANTES DO MÊS DO CALENDÁRIO.