Erro em LocalDate de Joda Time [RESOLVIDO]

8 respostas
anderson_lr

Pessoal,

Quando eu tenho executar o código:
LocalDate local = new LocalDate().withDayOfMonth(31).withMonthOfYear(8).withYear(2012);
Ganho de presente a seguinte exception:
org.joda.time.IllegalFieldValueException: Value 31 for dayOfMonth must be in the range [1,30]

Mas o mês 8 tem 31 dias. Alguém poderia ajudar?

8 Respostas

guilherme.dio

Mas o JodaTime não usa os meses no padrão com início em 0 - Janeiro / 1 - Fevereiro … e assim em diante ???

Então no caso o mes 8 é setembro e não agosto, ou seja, só possuí 30 dias e não 31.

Rodrigo_Sasaki

Seu erro é simples, faça o processo inverso: LocalDate local = new LocalDate().withYear(2012).withMonthOfYear(8).withDayOfMonth(31); Veja se consegue entender por que funciona desse jeito, e do seu jeito não.

Rodrigo_Sasaki

guilherme.dio:
Mas o JodaTime não usa os meses no padrão com início em 0 - Janeiro / 1 - Fevereiro … e assim em diante ???

Então no caso o mes 8 é setembro e não agosto, ou seja, só possuí 30 dias e não 31.


Não, os meses do JodaTime vão de 1 a 12, como deveria ser (na minha opinião) :slight_smile:

anderson_lr

Joda Time usa o padrão 0-11 para meses?

Rodrigo_Sasaki

Não.

ruivo

Perfeita colocação.

renanreismartins

Rodrigo Sasaki perfeita colocação mesmo man! vou colocar nos favoritos!

anderson_lr

Deu certinho pessoal, valeu!

Criado 8 de novembro de 2012
Ultima resposta 8 de nov. de 2012
Respostas 8
Participantes 5