Fügen Sie einen Tag zu Joda-Time DateTime hinzu

83

Ich habe ein Date Wed May 08 00:00:00 GMT+06:30 2013. Ich füge einen Tag hinzu, indem ich Joda-Time DateTime wie folgt verwende .

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

Wenn ich dateTime drucke, habe ich dieses Datum erhalten 2013-05-08T00:00:00.000+06:30 . Die Joda-Datumszeit fügte keinen Tag hinzu. Ich habe keinen Fehler gefunden.

Vielen Dank

user1156041
quelle
8
Ich kenne joda nicht, aber ich gehe davon aus, dass plusDays()ein neues DateTimeObjekt zurückgegeben wird. Versuchen Sie es datetime = dateTime.plusDays(1). Bestätigt aus den Dokumenten .
Phylogenesis
@Phylogenesis Vielleicht möchten Sie das als Antwort posten, weil es richtig ist.
Barend
1
@Barend Es wurde jetzt als Antwort gepostet. Keine Notwendigkeit, die Frage zu überladen.
Phylogenesis
1
Ich war anscheinend gerade dabei, die Antwort zu veröffentlichen, als der Kommentarthread passierte. Hätte ich es gesehen, hätte ich zugestimmt, dass Phylogenesis als Antwort posten sollte.
Don Roby

Antworten:

171

Die plusDaysMethode ist kein Mutator. Es wird eine Kopie des angegebenen zurückgegebenDateTime Objekts mit der vorgenommenen Änderung zurückgegeben, anstatt Objekt zu ändern.

Wenn Sie den Variablenwert tatsächlich ändern möchten, dateTimebenötigen Sie:

DateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);
Don Roby
quelle
33

Wenn Sie der aktuellen Datums- und Uhrzeitinstanz Tage hinzufügen möchten, verwenden Sie MutableDateTime

MutableDateTime dateTime = new MutableDateTime(date);  
dateTime.addDays(1);
Ilya
quelle