Bestehendes Datum um 1 Tag erhöhen [duplizieren]

9

Ich habe ein vorhandenes Datumsobjekt, das ich um einen Tag erhöhen möchte, während ich jedes andere Feld gleich belasse. Jedes Beispiel, in dem ich auf Stunden / Minuten / Sekunden gestoßen bin, oder Sie müssen ein neues Datumsobjekt erstellen und die Felder übertragen. Gibt es eine Möglichkeit, das Tagesfeld um 1 vorzurücken?

Danke

EDIT: Sorry, ich wollte nicht den Wert des Tages um eins erhöhen, ich meinte den Tag um 1 vorzuschieben.

    
Megatron 26.02.2011, 20:53
quelle

3 Antworten

24
%Vor%     
MeBigFatGuy 26.02.2011, 21:23
quelle
6

Das Date -Objekt selbst (vorausgesetzt, Sie meinen java.util.Date ) hat kein Day-Feld , sondern nur einen "Millisekunden seit Unix Epoch" -Wert. (Die Methode toString() gibt dies abhängig vom aktuellen Gebietsschema aus.)

Je nachdem, was Sie tun möchten, gibt es im Prinzip zwei Möglichkeiten:

  • Wenn Sie einfach "genau 24 Stunden nach dem angegebenen Datum" möchten, können Sie einfach 1000 * 60 * 60 * 24 Millisekunden zum Zeitwert addieren und dann dies einstellen. Wenn eine Sommerzeitverschiebung dazwischen liegt, könnte es sein, dass dein altes Datum am 11:07 war und das neue am 10:07 oder 12:07 (abhängig von der Richtung der Verschiebung), aber immer noch genau 24 ist Stundenunterschied.

    %Vor%
  • Wenn Sie "die gleiche Zeit am nächsten Kalendertag haben möchten", verwenden Sie besser einen Kalender, wie MeBigFatGuy gezeigt hat. (Vielleicht möchten Sie dieser Methode getInstance() auch die Zeitzone geben, wenn Sie nicht möchten, dass Ihre lokale Zeitzone verwendet wird.)

    %Vor%

    Wenn Sie mehrere solcher Datumsmanipulationen durchführen, verwenden Sie lieber direkt ein Kalenderobjekt, anstatt immer wieder von und nach Datum zu konvertieren.

Paŭlo Ebermann 26.02.2011 23:00
quelle
5
%Vor%     
Tomasz Nurkiewicz 26.02.2011 23:08
quelle

Tags und Links