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

562

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

Wie kann ich dieses Datum um einen Tag erhöhen?

user48094
quelle
10
Wenn Sie Java 8 oder höher verwenden, können Sie die neue Datums- / Uhrzeit-API verwenden. Sehen Sie diese Antwort: stackoverflow.com/a/23910924/1115554
micha
4
neue DateTime (). plusDays (1) .toDate () ???
Pietro

Antworten:

685

So etwas sollte den Trick machen:

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
Dave
quelle
50
@Esko, c.roll (Calendar.DATE, true) rollt den Monat nicht am letzten Tag des Monats.
Sam Hasler
18
@ Ammar, das ist eine schlechte Idee, wenn du nichts verstanden hast
niccolo m.
13
Ich zitiere einige JavaDocs ... Calendar.DATE: "... Dies ist ein Synonym für DAY_OF_MONTH." Ich wünschte, die JavaDocs würden klarstellen, dass dies größere Felder (wie den Monat und das Jahr) inkrementieren würde. Calendar.roll "Addiert oder subtrahiert (nach oben / unten) eine einzelne Zeiteinheit zu dem angegebenen Zeitfeld, ohne größere Felder zu ändern". Auch hier sind "größere Felder" vage, aber das scheint mit Sams Kommentar übereinzustimmen. Ich wünschte, es gäbe einen StackOverflow zum Reparieren der alten JavaDocs.
jcalfee314
4
Jungs, leider ist es ziemlich nutzlos, Tage mit DATE, DAY_OF_MONTH oder sogar DAY_OF_YEAR hinzuzufügen - sie werden alle durch den Modul erhöht. Wenn Sie also den Kalender vom 31.12.1970 berücksichtigen, geben Sie (DAY_OF_YEAR, 1) oder roll () hinzu, aber roll () ruft schließlich add () auf und ergibt den 01.01.1970. Ich denke, der einzig richtige Weg ist, die Zeit mit Millisekunden einzustellen. Ich verwende die Kalenderklasse nie wieder.
Dmitry Gryazin
14
@Bagzerg: Du liegst falsch . add()wird das Datum rollen. Siehe auf ideone .
Jean Hominal
212

Java scheint im Vergleich zu C # weit hinter dem Achtball zu liegen. Diese Dienstprogrammmethode zeigt die Vorgehensweise in Java SE 6 mithilfe der Calendar.add-Methode (vermutlich die einzig einfache Methode).

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 gemäß der gestellten Frage hinzuzufügen, rufen Sie ihn wie folgt auf:

String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);
Lisa
quelle
4
Zu Ihrer Information, die furchtbar lästig alten Datum Zeitklassen wie java.util.Date, java.util.Calendarund java.text.SimpleDateFormatsind jetzt Erbe , durch die verdrängte java.time Klassen in Java gebaut 8 und höher. Siehe Tutorial von Oracle .
Basil Bourque
80

java.time

Unter Java 8 und höher macht das Paket java.time dies ziemlich automatisch. ( Tutorial )

Annahme von StringInput und Output:

import java.time.LocalDate;

public class DateIncrementer {
  static public String addOneDay(String date) {
    return LocalDate.parse(date).plusDays(1).toString();
  }
}
Daniel C. Sobral
quelle
3
Zu Ihrer Information, sowohl ZonedDateDateTimeals OffsetDateTimeauch haben plusDaysund minusDaysMethoden sowieLocalDate
Basil Bourque
@BasilBourque Sicher, aber die in der Frage verfügbaren Informationen sind die von a LocalDate.
Daniel C. Sobral
2
@ DanielCSobral Ja. Fügen Sie einfach Links für die Erbauung Ihrer Leser hinzu. Keine Kritik.
Basil Bourque
65

Ich bevorzuge DateUtils von Apache. Überprüfen Sie dies unter http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/time/DateUtils.html . Dies ist besonders dann praktisch, wenn Sie es an mehreren Stellen in Ihrem Projekt verwenden müssen und dafür keine Einzeilermethode schreiben möchten.

Die API sagt:

addDays (Datum Datum, int Betrag): Fügt einem Datum, das ein neues Objekt zurückgibt, eine Anzahl von Tagen hinzu.

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

Risav Karna
quelle
59
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Calendar cal = Calendar.getInstance();
cal.setTime( dateFormat.parse( inputString ) );
cal.add( Calendar.DATE, 1 );
Alex B.
quelle
48

Erstellen Sie ein Kalenderobjekt und verwenden Sie die Methode add (Calendar.DATE, 1).

Krosenvold
quelle
43

Werfen Sie einen Blick auf Joda-Time ( https://www.joda.org/joda-time/ ).

DateTimeFormatter parser = ISODateTimeFormat.date();

DateTime date = parser.parseDateTime(dateString);

String nextDay = parser.print(date.plusDays(1));
Willi aus Rohr
quelle
3
Sie können die Parser-Aufrufe zum Erstellen der DateTime entfernen. Use DateTime date = new DateTime (dateString); Dann ist nextDay ISODateTimeFormat.date (). Print (date.plusDays (1)); Weitere Informationen finden Sie unter joda-time.sourceforge.net/api-release/org/joda/time/… .
MetroidFan2002
Ausführlicheren Beispielcode mit Joda-Time finden Sie in meiner Antwort auf eine ähnliche Frage: Wie füge ich einem Datum einen Tag hinzu? .
Basil Bourque
2
Zu Ihrer Information … Das Joda-Time-Projekt befindet sich jetzt im Wartungsmodus und empfiehlt die Migration zu den Klassen java.time . Beide Bemühungen wurden von demselben Mann, Stephen Colebourne, geleitet. Sie teilen also ähnliche Konzepte, und die Migration ist nicht schwierig.
Basil Bourque
40

Bitte beachten Sie, dass diese Zeile 24 Stunden hinzufügt:

d1.getTime() + 1 * 24 * 60 * 60 * 1000

aber diese Zeile fügt einen Tag hinzu

cal.add( Calendar.DATE, 1 );

An Tagen mit einer Änderung der Sommerzeit (25 oder 23 Stunden) erhalten Sie unterschiedliche Ergebnisse!

Florian R.
quelle
40

Java 8 hat eine neue API zum Arbeiten mit Datum und Uhrzeit hinzugefügt.

Mit Java 8 können Sie die folgenden Codezeilen verwenden:

// parse date from yyyy-mm-dd pattern
LocalDate januaryFirst = LocalDate.parse("2014-01-01");

// add one day
LocalDate januarySecond = januaryFirst.plusDays(1);
micha
quelle
1
Ich denke du meintest es januaryFirst.plusDays(1)nicht date.plusDays(1).
TeWu
Dies wird nur von Android O unterstützt. Developer.android.com/reference/java/time/package-summary.html
Subho
1
@Subho Für Android vor 26, siehe das ThreeTenABP- Projekt, das das ThreeTen-Backport- Projekt anpasst , ein Back-Port, wenn der größte Teil der Java-Zeit- Funktionalität auf Java 6 und Java 7.
Basil Bourque
29

Sie können Simple java.util lib verwenden

Calendar cal = Calendar.getInstance(); 
cal.setTime(yourDate); 
cal.add(Calendar.DATE, 1);
yourDate = cal.getTime();
Pawan Pareek
quelle
1
Diese Antwort dupliziert den Inhalt mehrerer Antworten, einschließlich der akzeptierten Antwort von vor drei Jahren. Bitte löschen Sie Ihre Antwort oder bearbeiten Sie sie, um einen Mehrwert zu erzielen.
Basil Bourque
3
Diese Antwort ist sauberer, analysiert nicht das Datum in der Mitte. Die "akzeptierte Antwort" ist zu kompliziert. Es ist gut, dass Sie Ihre hinzugefügt haben, ignorieren Sie die automatisierte Bemerkung von Basilikum
Mickey Perlstein
Zu Ihrer Information, die furchtbar lästig alten Datum Zeitklassen wie java.util.Date, java.util.Calendarund java.text.SimpleDateFormatsind jetzt Erbe , durch die verdrängte java.time Klassen in Java gebaut 8 und höher. Siehe Tutorial von Oracle .
Basil Bourque
Beste Antwort, direkt auf den Punkt. Ich stimme Mickey zu, ignoriere einfach den Kommentar von Basilikum
eramirez75
23
Date today = new Date();               
SimpleDateFormat formattedDate = new SimpleDateFormat("yyyyMMdd");            
Calendar c = Calendar.getInstance();        
c.add(Calendar.DATE, 1);  // number of days to add      
String tomorrow = (String)(formattedDate.format(c.getTime()));
System.out.println("Tomorrows date is " + tomorrow);

Dies wird das Datum von morgen geben. c.add(...)Die Parameter können für ein entsprechendes Inkrement von 1 auf eine andere Zahl geändert werden.

Akhilesh T.
quelle
1
Sie können beispielsweise c.setTime (Datumsobjekt) ausführen, um vor dem Hinzufügen ein bestimmtes Datum festzulegen.
Linh Lino
Ich wünschte, die Standard-Java-Pakete würden die Handhabung von Daten weniger kompliziert machen ... Ich meine, es ist jedes Mal so schmerzhaft, wenn Sie sich mit Daten befassen möchten ... nur ein Scherz ...
Shn_Android_Dev
1
@Shn_Android_Dev Die in Java 8 und höher integrierten java.time- Klassen ersetzen die schrecklichen alten Datums- und Uhrzeitklassen und beantworten Ihren Wunsch. In den Projekten ThreeTen-Backport und ThreeTenABP auch auf Java 6/7 und frühere Android -Geräte zurückportiert . Keine Notwendigkeit, jemals Dateoder Calendarwieder zu verwenden.
Basil Bourque
19

Wenn Sie Java 8 verwenden , gehen Sie folgendermaßen vor.

LocalDate sourceDate = LocalDate.of(2017, Month.MAY, 27);  // Source Date
LocalDate destDate = sourceDate.plusDays(1); // Adding a day to source date.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // Setting date format

String destDate = destDate.format(formatter));  // End date

Wenn Sie SimpleDateFormat verwenden möchten , gehen Sie folgendermaßen vor.

String sourceDate = "2017-05-27";  // Start date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(sourceDate)); // parsed date and setting to calendar

calendar.add(Calendar.DATE, 1);  // number of days to add
String destDate = sdf.format(calendar.getTime());  // End date
Avijit Karmakar
quelle
Nein, in der Frage wurde nur ein Datum und keine Uhrzeit angegeben. Verwenden Sie also die LocalDateKlasse nicht LocalDateTime.
Basil Bourque
1
Ihre Antwort wiederholt den Inhalt von mindestens vier anderen Antworten. Bitte erläutern Sie, wie Ihr Mehrwert darüber hinausgeht, oder löschen Sie ihn, bevor Sie Abstimmungen sammeln.
Basil Bourque
16
long timeadj = 24*60*60*1000;
Date newDate = new Date (oldDate.getTime ()+timeadj);

Dies nimmt die Anzahl der Millisekunden seit der Epoche von oldDate an und fügt Millisekunden im Wert von 1 Tag hinzu. Anschließend wird mit dem öffentlichen Konstruktor Date () ein Datum mit dem neuen Wert erstellt. Mit dieser Methode können Sie 1 Tag oder eine beliebige Anzahl von Stunden / Minuten hinzufügen, nicht nur ganze Tage.

dvaey
quelle
Dies ist wahrscheinlich nicht das, was OP wollte; Anpassungen vom Typ Sommerzeit, Schaltsekunden usw. werden nicht berücksichtigt.
mrec
1
Die Sommerzeit sollte nach Zeitzone / Gebietsschema erfolgen. Mein Beispiel zeigte, wie man um kleine Zeiträume erhöht. Beim Inkrementieren um Tage können Schaltsekunden ein Problem sein, aber beim Hinzufügen von Stunden ist dies weniger wahrscheinlich, obwohl dies immer noch möglich ist.
dvaey
15

Seit Java 1.5 sieht TimeUnit.DAYS.toMillis (1) für mich sauberer aus.

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Date day = dateFormat.parse(string);
// add the day
Date dayAfter = new Date(day.getTime() + TimeUnit.DAYS.toMillis(1));
Jens
quelle
Dadurch wird ein Datum / Uhrzeit-Wert erstellt, bei dem in der Frage nur ein Datum angefordert wird. Ich schlage vor, dass ein viel klügerer Ansatz die LocalDateKlasse in den java.time-Klassen für Java 8 und höher und der Back-Port zu Java 6 und Java 7 im ThreeTen-Backport- Projekt ist.
Basil Bourque
14

In Java 8 ist dies auf einfache Weise möglich:

Date.from(Instant.now().plusSeconds(SECONDS_PER_DAY))
dpk
quelle
14
Scheint ein bisschen langwierig zu sein. Warum nicht einfach mitgehen Instant.now().plus( 1 , ChronoUnit.DAYS )?
Basil Bourque
Danke @BasilBourque
dpk
11

In Java 8 können Sie verwenden java.time.LocalDate

LocalDate parsedDate = LocalDate.parse("2015-10-30"); //Parse date from String
LocalDate addedDate = parsedDate.plusDays(1);   //Add one to the day field

Sie können java.util.Datewie folgt in ein Objekt konvertieren .

Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

Sie können LocalDatewie folgt zu einem String formatieren.

String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Ramesh-X
quelle
11

Es ist sehr einfach, es mit einem einfachen Wort zu erklären. Holen Sie sich das heutige Datum wie unten

Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());// print today's date
calendar.add(Calendar.DATE, 1);

Stellen Sie nun mit der Methode calendar.add, die (Konstante, Wert) verwendet, einen Tag im Voraus auf dieses Datum ein. Hier könnte die Konstante DATE, Stunden, Min, Sek. Usw. sein und der Wert ist der Wert der Konstante. Wie für einen Tag ist die Vorauskonstante Calendar.DATE und ihr Wert ist 1, da wir einen Wert für einen Tag im Voraus wünschen.

System.out.println(calendar.getTime());// print modified date which is das Datum von morgen

Vielen Dank

Kushwaha
quelle
7

Geben Sie einfach das Datum in String und die Anzahl der nächsten Tage ein

 private String getNextDate(String givenDate,int noOfDays) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        String nextDaysDate = null;
    try {
        cal.setTime(dateFormat.parse(givenDate));
        cal.add(Calendar.DATE, noOfDays);

       nextDaysDate = dateFormat.format(cal.getTime());

    } catch (ParseException ex) {
        Logger.getLogger(GR_TravelRepublic.class.getName()).log(Level.SEVERE, null, ex);
    }finally{
    dateFormat = null;
    cal = null;
    }

    return nextDaysDate;

}
LMK
quelle
7

Wenn Sie eine einzelne Zeiteinheit hinzufügen möchten und erwarten, dass auch andere Felder inkrementiert werden, können Sie die Methode add sicher verwenden. Siehe Beispiel unten:

SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(1970,Calendar.DECEMBER,31);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println(simpleDateFormat1.format(cal.getTime()));

Wird drucken:

1970-12-31
1971-01-01
1970-12-31
Terrmith
quelle
Es gibt keine akzeptierte Antwort und ich hatte das Gefühl, dass es insgesamt Verwirrung gab, wenn auch andere Felder aktualisiert werden.
Terrmith
7
startCalendar.add(Calendar.DATE, 1); //Add 1 Day to the current Calender
Abdurahman Popal
quelle
4
Vielen Dank, dass Sie einen Beitrag leisten möchten. Dies ist jedoch bereits in mehreren anderen Antworten enthalten, daher sehe ich wirklich keinen Grund… Abgesehen davon sollte meiner Meinung nach niemand die schlecht gestaltete und längst veraltete CalendarKlasse im Jahr 2019 verwenden.
Ole VV
6

Wenn Sie Java SE 8 oder höher verwenden, sollten Sie die neue Datums- / Uhrzeit-API verwenden

 int days = 7;       
 LocalDate dateRedeemed = LocalDate.now();
 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY");

 String newDate = dateRedeemed.plusDays(days).format(formatter);   
 System.out.println(newDate);

Wenn Sie von java.util.Datenach konvertieren müssen, java.time.LocalDatekönnen Sie diese Methode verwenden.

  public LocalDate asLocalDate(Date date) {
      Instant instant = date.toInstant();
      ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
      return zdt.toLocalDate();
  }

Wenn Sie eine Version vor Java SE 8 verwenden, empfehle ich Ihnen, diese zu verwenden Joda-Time zu verwenden

Joda-Time bietet einen Qualitätsersatz für die Java-Datums- und Zeitklassen und ist de facto die Standard-Datums- und Zeitbibliothek für Java vor Java SE 8

   int days = 7;       
   DateTime dateRedeemed = DateTime.now();
   DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/uuuu");

   String newDate = dateRedeemed.plusDays(days).toString(formatter);   
   System.out.println(newDate);
Eduardo Eljaiek
quelle
1
Ihr Muster für das java.timeTeil ist falsch. Es sollte dd/MM/uuuudem JodaTime entsprechen.
TiiJ7
5

Verwenden Sie die DateFormatAPI, um den String in ein Date-Objekt zu konvertieren, und verwenden Sie dann die CalendarAPI, um einen Tag hinzuzufügen. Lassen Sie mich wissen, wenn Sie bestimmte Codebeispiele wünschen, und ich kann meine Antwort aktualisieren.

Ross
quelle
3

Wenn Sie Java 8 verwenden java.time.LocalDateund java.time.format.DateTimeFormatterdies ganz einfach machen können.

public String nextDate(String date){
      LocalDate parsedDate = LocalDate.parse(date);
      LocalDate addedDate = parsedDate.plusDays(1);
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-mm-dd");
      return addedDate.format(formatter); 
}
Evan Hu
quelle
Noch einfacher: Löschen Sie den Formatierer und verwenden Sie ihn einfach toString(), um die Zeichenfolge im Format JJJJ-MM-TT zu erstellen (und wenn Sie darauf bestehen, denken Sie daran, dass dies mmMinuten sind, während MMder Monat ist).
Ole VV
3

Sie können dieses Paket unter "org.apache.commons.lang3.time" verwenden:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date myNewDate = DateUtils.addDays(myDate, 4);
 Date yesterday = DateUtils.addDays(myDate, -1);
 String formatedDate = sdf.format(myNewDate);  
Shaheed
quelle
5
Das Vorschlagen eines DateUnterrichts im Jahr 2018 ist ein schlechter Rat. Die lästigen alten Datum Zeitklassen wie java.util.Date, java.util.Calendarund java.text.SimpleDateFormatsind jetzt Erbe , durch die verdrängte java.time Klassen in Java gebaut 8 & Java 9. Siehe Tutorial von Oracle . Siehe andere Antworten mit LocalDateKlasse.
Basil Bourque
Ja, LocalDate ist der beste Weg, dies zu tun
Shaheed
Einige Frameworks wie jsf haben jedoch einige Integrationsprobleme mit der Zeit-API. Daher sollten Sie manchmal Date verwenden. plus Umgebung Java <8
Lucke
1
@Lucke Der größte Teil der java.time- Funktionalität wurde im ThreeTen-Backport- Projekt auf Java 6 & 7 zurückportiert . Weiter angepasst an älteres Android im ThreeTenABP- Projekt. Es ist also wirklich nicht nötig, jemals diese verdammt schrecklichen alten Datums- und Uhrzeitklassen zu berühren. Viele Frameworks wurden aktualisiert. Aber nicht alles. Wenn Sie also mit altem Code zusammenarbeiten müssen, der noch nicht auf java.time aktualisiert wurde , schreiben Sie Ihren neuen Code in java.time und konvertieren Sie zu / von den alten Typen, indem Sie neue Konvertierungsmethoden aufrufen, die den alten Klassen hinzugefügt wurden.
Basil Bourque
1
Dieser Code ignoriert das entscheidende Problem der Zeitzone . Für jeden Moment variiert das Datum rund um den Globus je nach Zone. Die SimpleDateFormatKlasse fügt leider eine Zeitzone ein und wendet implizit die aktuelle Standardzone der JVM an. So sind die Ergebnisse dieser Code von was auch immer die aktuellen Standard variieren - und das Standardjederzeit ändern kann , während der Laufzeit.
Basil Bourque
3

Es ist eigentlich einfach. Ein Tag enthält 86400000 Millisekunden. Sie erhalten also zuerst die aktuelle Zeit in Millis von The System, indem System.currentTimeMillis()Sie die 84000000 Millisekunden hinzufügen und dann mit der DateKlasse ein Datumsformat für die Millisekunden generieren.

Beispiel

String Today = new Date(System.currentTimeMillis()).toString();

String Today wird 2019-05-9 sein

String Tommorow = new Date(System.currentTimeMillis() + 86400000).toString();

String Tommorow wird 2019-05-10 sein

String DayAfterTommorow = new Date(System.currentTimeMillis() + (2 * 86400000)).toString();

String DayAfterTommorow wird 2019-05-11 sein

Mike T.
quelle
Dieser Code verwendet die schreckliche DateKlasse, die vor Jahren durch die modernen java.time- Klassen ersetzt wurde. So viel einfacher zu bedienen:LocalDate.parse( "2019-01-23" ).plusDays( 1 )
Basil Bourque
2

Lassen Sie uns den Anwendungsfall verdeutlichen: Sie möchten Kalenderarithmetik durchführen und mit einem java.util.Date beginnen / enden .

Einige Ansätze:

  1. Mit SimpleDateFormat in String und zurück konvertieren : Dies ist eine ineffiziente Lösung.
  2. In LocalDate konvertieren : Sie würden alle Tageszeitinformationen verlieren.
  3. In LocalDateTime konvertieren : Dies umfasst mehr Schritte und Sie müssen sich um die Zeitzone kümmern.
  4. Mit Date.getTime () in eine Epoche konvertieren : Dies ist effizient, aber Sie rechnen mit Millisekunden.

Erwägen Sie die Verwendung von java.time.Instant :

Date _now = new Date();
Instant _instant = _now.toInstant().minus(5, ChronoUnit.DAYS);
Date _newDate = Date.from(_instant);
Chad Juliano
quelle
1
Mischen Sie niemals die schrecklichen Legacy-Klassen wie Datemit den modernen Java.time- Klassen wie Instant. Die java.time- Klassen ersetzen die Legacy-Klassen vollständig. Insbesondere Instantersetzt java.util.Date.
Basil Bourque
1
Behandelt die Frage nicht. Sie verwenden Klassen, die einen Moment darstellen (ein Datum mit Uhrzeit im Kontext eines Versatzes oder einer Zone). In der Frage wird jedoch nur nach Datum ohne Tageszeit und ohne Zeitzone gefragt. Siehe richtige Antwort von Sobral und richtige Antwort von micha.
Basil Bourque
0
Date newDate = new Date();
newDate.setDate(newDate.getDate()+1);
System.out.println(newDate);
Filip Trajcevski
quelle
14
fyi, Date.setDate () ist veraltet
Kelly S. French
Auf meinem Computer scheint es über einen Monat hinweg zu funktionieren. Nachher Sun Apr 30 16:25:33 CEST 2017kommt Mon May 01 16:25:33 CEST 2017. Es ist jedoch immer noch eine entmutigte Lösung. Die Methode ist nicht nur aus gutem Grund veraltet, auch 2017 haben wir sehr gute Alternativen zur DateKlasse.
Ole VV