2015-01-29 16 views

risposta

16

Se volete aggiungere un mese per 2015/01/29, si otterrebbe 2015/02/29 - dal 2015 non è un anno bisestile, che non è una data valida, così Joda sceglie 2015/02/28, as documented:

L'aggiunta potrebbe cambiare l'anno, ma il giorno del mese è normalmente invariato. Se l'aggiunta di mesi rende invalido il giorno del mese, è adattato all'ultimo giorno valido del mese.

E un altro mese aggiunto al 2015/02/28 comporterà la data effettiva 2015/03/28.

Il problema con il 29 febbraio mancante non viene visualizzato quando si aggiungono due mesi, poiché Joda non ottiene mai una data non valida.

Lo stesso vale per, ad esempio, new LocalDate(2015, 03, 31).plusMonths(2) versus new LocalDate(2015, 03, 31).plusMonths(1).plusMonths(1) - Immagino, questo è più comune degli anni bisestili.