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


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);

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);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.