fügen Sie mehr als 30 Tage mit dem Kalender add () - Methode in Java
Ich bin mir nicht ganz sicher, was Feld, um zu verwenden, beim hinzufügen von mehr als 30 Tagen auf ein Java-Calendar-Objekt. Gibt es einen Unterschied zwischen Calendar.DAY_OF_MONTH
und Calendar.DAY_OF_YEAR
?
Beispiel:
GregorianCalendar d = new GregorianCalendar();
d.add(Calendar.DAY_OF_YEAR, 90);
vs
GregorianCalendar d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, 90);
Dank.
- Sie code bedeutet, dass alle Monate haben 30 Tage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es einen Unterschied macht, wenn Sie Anruf hinzufügen. Die Unterscheidung ist wichtig beim Aufruf der Getter.
Beide Methoden funktionieren, richtig? Für mehr als 30 Tage, als auch als negative Beträge.
Die (zugegebenermaßen komplizierte) Quelle für GregorianCalendar#hinzufügen, hat dieser Abschnitt:
tl;dr
Details
Jetzt viel leichter mit der modernen java.Zeit Klassen, die verdrängen die alten
Calendar
&Date
Klassen.LocalDate
Den
LocalDate
Klasse repräsentiert einen nur-Datum-Wert ohne Zeit-von-Tag und ohne Zeitzone.Einer Zeitzone ist entscheidend, ein Datum. Für jeden gegebenen Augenblick, das Datum variiert rund um den Globus durch die zone. Zum Beispiel, ein paar Minuten nach Mitternacht in Paris Frankreich ist ein neuer Tag, während immer noch "gestern" in Montréal Québec.
Angeben die richtige Zeit zone name im format
continent/region
wieAmerika/Montreal
,Africa/Casablanca
, oderPacific/Auckland
. Verwenden Sie niemals die 3-4 Buchstaben-Abkürzung wieEST
oderIST
wie Sie sind nicht wahr, Zeitzonen, nicht standardisierten und nicht sogar einzigartig(!).Können Sie eine Anzahl von Tagen, die.
Period
Können Sie darstellen, eine Zeitspanne mit der
Period
Klasse.Können Sie durchführen Datum Mathematik durch die Berufung
plus
oderminus
Methoden.Über java.Zeit
Den java.Zeit framework ist in Java 8 und höher. Diese Klassen verdrängen die lästige alte legacy Datum-Zeit-Klassen wie
java.util.Date
,Calendar
, &" = SimpleDateFormat
.Den Joda-Time Projekt, jetzt in Wartung-Modus, rät der migration auf die java.Zeit Klassen.
Um mehr zu erfahren, siehe die Oracle Tutorial. Und die Suche Stack Overflow für viele Beispiele und Erklärungen. Spezifikation JSR 310.
Wo erhalten Sie die java.Zeit-Klassen?
Den ThreeTen-Extra Projekt erweitert die java.mal mit zusätzlicher Klassen. Dieses Projekt ist ein Testgelände für mögliche künftige Erweiterungen zu java.Zeit. Sie finden möglicherweise einige nützliche Klassen, die hier wie
Interval
,YearWeek
,YearQuarter
, und mehr.