Datumsarithmetik in Java, 3 Monate vom heutigen Tag an gerechnet

8

In meinem Programm geht es darum, einen Kurosawa zu erzeugen (zu produzieren) und die Kunden dazu zu bringen, ihn herzustellen.

Jedes Mal, wenn wir einen Kurosawa generieren, müssen wir seine ID, sein Produktionsdatum und das Ablaufdatum drucken, das 3 Monate nach dem Produktionsdatum liegt.

Mein Problem ist: Wie kann ich das Datum nach drei Monaten berechnen?

    
Basil Bourque 05.04.2009, 09:10
quelle

6 Antworten

15

Verwenden Sie die integrierte Java-Kalender-API .

%Vor%

Sehen Sie in der API nach, wie Sie das Datum genau in dem von Ihnen gewünschten Format ausdrucken können.

    
Yuval Adam 05.04.2009 10:02
quelle
9

Sie können auch die viel mächtigere und einfachere Joda Zeitbibliothek verwenden:

%Vor%

Joda Time hat viele Vorteile gegenüber der integrierten Java-Kalender-API

    
Ludwig Wensauer 05.04.2009 10:18
quelle
2

Ich glaube, dass die Java-Kalenderbibliothek helfen sollte du.

    
Yuval F 05.04.2009 09:58
quelle
1

tl; dr

%Vor%

java.time

Der moderne Ansatz verwendet java.time Klassen.

Die Klasse LocalDate repräsentiert einen reinen Datumswert ohne Uhrzeit und ohne Zeitzone.

Eine Zeitzone ist entscheidend für die Bestimmung eines Datums. Für jeden Moment variiert das Datum von Zone zu Zone. Zum Beispiel, ein paar Minuten nach Mitternacht in Paris Frankreich ist ein neuer Tag während noch "gestern" in Montréal Québec .

Wenn keine Zeitzone angegeben ist, wendet die JVM implizit ihre aktuelle Standardzeitzone an. Dieser Standardwert kann sich jederzeit ändern, sodass die Ergebnisse variieren können. Es ist besser, die gewünschte / erwartete Zeitzone explizit als Argument anzugeben.

Geben Sie einen richtigen Zeitzonennamen im Format continent/region an, z. B. America/Montreal , Africa/Casablanca oder Pacific/Auckland . Verwenden Sie niemals die Abkürzung für 3-4 Buchstaben wie EST oder IST , da sie keine echten Zeitzonen sind, nicht standardisiert und nicht einmal eindeutig (!).

%Vor%

Fügen Sie drei Monate hinzu und lassen Sie java.time die Berechnung durchführen.

%Vor%

Über java.time

Das Framework java.time ist in Java integriert 8 und später. Diese Klassen ersetzen die problematischen alten Legacy Datum-Uhrzeit-Klassen wie java.util.Date , Calendar , & amp; SimpleDateFormat .

Das Joda-Time Projekt, jetzt in Wartungsmodus , rät Migration zum java.time Klassen.

Weitere Informationen finden Sie im Oracle-Lernprogramm . Und suchen Sie nach Stack Overflow für viele Beispiele und Erklärungen. Spezifikation ist JSR 310 .

Wo erhalten Sie die Klassen java.time?

Das ThreeTen-Extra -Projekt erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Erweiterungen von java.time. Hier finden Sie einige nützliche Klassen wie Interval , < a href="http://www.threeten.org/threeten-extra/apidocs/org/threeten/extra/YearWeek.html"> YearWeek , YearQuarter und mehr .

    
Basil Bourque 26.01.2018 06:46
quelle
0

Wenn Sie mit Datumsarithmetik arbeiten müssen, funktioniert JODA besser, da Kalender Timestamps mag.

    
quelle
0

/ Der Java-Klassen-Kalender ist abstrakt. Sie müssen also die GregorianCalendar-Klasse verwenden. /

%Vor%

/ Fügen Sie 3 Monate /

hinzu %Vor%

/ um 1 Woche zurück zu gehen /

%Vor%     
hcv 14.03.2012 23:51
quelle

Tags und Links