663 Stimmen

Wie kann ich in Java ein Datum um einen Tag erhöhen?

Ich arbeite mit einem Datum in diesem Format: yyyy-mm-dd .

Wie kann ich dieses Datum um einen Tag verlängern?

12 Stimmen

Wenn Sie Java 8 oder eine neuere Version verwenden, können Sie die neue Datums-/Zeit-API nutzen. Siehe diese Antwort: stackoverflow.com/a/23910924/1115554

6 Stimmen

New DateTime().plusDays(1).toDate() ???

755voto

Dave Punkte 7718

So etwas sollte den Zweck erfüllen:

String dt = "2008-01-01";  // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, 1);  // number of days to add
dt = sdf.format(c.getTime());  // dt is now the new date

255voto

Lisa Punkte 4143

UPDATE (Mai 2021): Dies ist eine wirklich veraltete Antwort für altes, altes Java. Für Java 8 und höher, siehe https://stackoverflow.com/a/20906602/314283

Java scheint im Vergleich zu C# noch weit hinterherzuhinken. Diese Utility-Methode zeigt, wie man in Java SE 6 mit der Methode Calendar.add (vermutlich der einzige einfache Weg).

public class DateUtil
{
    public static Date addDays(Date date, int days)
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DATE, days); //minus number would decrement the days
        return cal.getTime();
    }
}

Um einen Tag hinzuzufügen, ist die Frage wie folgt zu formulieren:

String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);

105voto

Daniel C. Sobral Punkte 290004

Java.time

Unter Java 8 und höher wird die java.time-Paket macht dies so gut wie automatisch. ( Tutorial )

Angenommen, String Eingabe und Ausgabe:

import java.time.LocalDate;

public class DateIncrementer {
  static public String addOneDay(String date) {
    return LocalDate.parse(date).plusDays(1).toString();
  }
}

72voto

Risav Karna Punkte 926

Ich bevorzuge die Verwendung von DateUtils von Apache. Prüfen Sie dies http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/time/DateUtils.html . Es ist besonders praktisch, wenn Sie es an mehreren Stellen in Ihrem Projekt verwenden müssen und nicht Ihre eigene Methode dafür schreiben möchten.

Die API sagt:

addDays(Datum date, int amount) : Fügt eine Anzahl von Tagen zu einem Datum hinzu und gibt ein neues Objekt zurück.

Beachten Sie, dass ein neues Date-Objekt zurückgegeben wird und keine Änderungen am vorherigen Objekt selbst vorgenommen werden.

70voto

Alex B Punkte 24270
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Calendar cal = Calendar.getInstance();
cal.setTime( dateFormat.parse( inputString ) );
cal.add( Calendar.DATE, 1 );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X