Dodaj jeden dzień do Joda-Time DateTime

83

Mam randkę Wed May 08 00:00:00 GMT+06:30 2013. Dodaję do tego jeden dzień, używając Joda-Time DateTime w ten sposób.

DateTime dateTime = new DateTime(date);
dateTime.plusDays(1);

Kiedy drukuję dateTime, mam tę datę 2013-05-08T00:00:00.000+06:30. Data joda nie dodała jednego dnia. Nie znalazłem żadnego błędu.

Dzięki

user1156041
źródło
9
Nie znam jody, ale zakładam, że plusDays()zwraca nowy DateTimeobiekt. Spróbuj datetime = dateTime.plusDays(1). Potwierdzone z dokumentów .
Filogeneza
@Phylogenesis, możesz zamieścić to jako odpowiedź, ponieważ jest poprawne.
Barend
1
@Barend został opublikowany jako odpowiedź teraz. Nie ma potrzeby zaśmiecać pytania.
Filogeneza
1
Najwyraźniej byłem w trakcie publikowania odpowiedzi, gdy pojawił się wątek komentarza. Gdybym widział, jak to się dzieje, zgodziłbym się, że Filogeneza powinna opublikować jako odpowiedź.
Don Roby

Odpowiedzi:

173

Ta plusDaysmetoda nie jest mutatorem. Zwraca kopię danego DateTimeobiektu z dokonaną zmianą zamiast zmiany danego obiektu.

Jeśli chcesz faktycznie zmienić dateTimewartość zmiennej , potrzebujesz:

DateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);
Don Roby
źródło
może dodaj słowa „niezmienny” i „zmienny”, aby najlepiej wyjaśnić to na takie pytanie
samuel owino
33

Jeśli chcesz dodać dni do bieżącego wystąpienia daty i godziny, użyj MutableDateTime

MutableDateTime dateTime = new MutableDateTime(date);  
dateTime.addDays(1);
Ilya
źródło