Es gibt viele Klassen, die direkt mit dem Datum in Java zusammenhängen. Die am häufigsten verwendeten sind Datum und Kalender im Java.util -Paket. Wenn Sie das Format verwenden müssen, verwenden Sie auch java.text.SimpledateFormat.
Lassen Sie mich zunächst beschweren, dass Datum und Kalender tatsächlich etwas umständlich zu verwenden sind. Ich war damit nicht vertraut, als ich es zum ersten Mal benutzte, und konnte immer die spezifische Verwendung und Unterschiede zwischen Datum und Kalenderklassen nicht erkennen.
Darüber hinaus weist die Calendar Class-Set-Methode beim Festlegen von Datum eine gewisse Anti-Menschheit auf. Wenn Sie den Monat festlegen, müssen Sie es immer wieder gut machen und 1 abziehen. Wenn Sie es beispielsweise auf den 6. Januar 2018 einstellen möchten, müssen Sie es auf 2018, 0, 6 einstellen, da der Januar hier durch 0 vertreten ist:
Kalender cal = calendar.getInstance (); Cal.set (2018, 0, 8);
Aus den spezifischen Gründen finden Sie hier die Antwort hier: Stackoverflow: Warum ist der Monat Januar 0 im Java -Kalender?
Wie auch immer, ich kann es nicht ertragen. .
Vor ein paar Tagen gab es eine einfache Anforderung, die das Alter auf der Grundlage von zwei Daten berechnen sollte. Ich habe das Internet überprüft und das schwierige Datum und den Kalenderunterricht direkt aufgegeben und direkt Java.time.localdate verwendet. Laden Sie ohne weiteres den Code hoch:
java.time.localdate; public class testlocaldate {public static void main (String [] args) {localDate Datum1 = localDate.of (2018, 1, 6); LocalDate Datum2 = localDate.of (1991, 1, 3); int age = date2.until (Datum1) .Getyears (); System.out.println ("Du bist" + Alter + "Jahre alt"); }}Ausgangsergebnis:
Du bist 27 Jahre alt.
Die etwas komplexen und überwältigenden gegenseitigen Konvertierungsanrufe zwischen Datum und Kalenderklassen werden aufgegeben, und der Code ist ebenfalls sehr klar. Ist es nicht sehr angenehm?
Java.Time ist eine in Java 8 eingeführte Datums- und Uhrzeitbibliothek. Die folgenden Methoden sind alle im Java.Time -Paket.
Schauen wir uns an, wie dieser Code den Zeitunterschied auf einfache und erfrischende Weise berechnet:
Erstens ist LocalDate eine unveränderliche Klasse (unveränderliche Klasse). Wie die String -Klasse müssen Sie also kein neues Objekt neu verwenden (?)
Dann gibt es die von der LocalDate -Klasse verwendete Methode, um das Datum festzulegen:
Öffentliche statische Lokaldatum von (int Jahr, Monat, int Dayofmonth) öffentliches statisches Lokaldatum von (int Jahr, int Monats, int Dayofmonth)
Insgesamt gibt es drei überlastete Methoden, von denen zwei hier aufgeführt sind. Der erste Monatsunterricht ist ein Enum -Typ, der den englischen Namen des Monats enthält, wie z. B. Januar, November usw.
Die zweite ist die normale Einstellung des Jahres, des Monat und des Tages. Die gute Nachricht ist, dass der Monat hier von 1 beginnt, was bedeutet, dass Sie 1 nicht mehr manuell abziehen müssen! ! !
Das Folgende ist die bis zur Lokaldate -Klasse verwendete Methode zum Vergleich von Daten:
Öffentliche Zeit bis (Chronolocaldate EnddateExclusive)
Diese Methode gibt ein Objekt vom Typ Periode zurück.
Die Periode stellt eine Zeitspanne von Zeitintervallen dar, die wie "2 Jahre, 3 Monate, 4 Tage" geformt sind. Die nächste Getyears -Methode namens gehört zur Periodenklasse.
Schauen wir uns schließlich einige Methoden an, um Zeitintervalle in der Zeitklasse zu erhalten:
public int getyears () public int Getmonths () öffentliche int getays ()
Diese drei Methoden werden verwendet, um das Jahr, Monat und Tag des Zeitintervalls zu erhalten. Ja, es ist so einfach.
Zusammenfassen
Das obige ist die Implementierungsmethode zur Verwendung von LocalDate, um das Alter basierend auf Daten in Java zu berechnen, die vom Editor eingeführt wurden. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird allen rechtzeitig antworten!