Arbeiten mit Datumsangaben in Java 8

Die Arbeit mit Daten war schon immer ein Wendepunkt in der Karriere von Programmierern. Dies liegt zum Teil daran, dass es in früheren Java- Versionen etwas verwirrend und inkonsistent war. In der neuen Version wurde jedoch eine API implementiert, mit der wir die Sprache mit klareren Methoden und einer einfacheren Verwaltung optimal nutzen können.

Dadurch ist das Arbeiten mit Datums- und Uhrzeitformaten in Java kein Problem. Dafür müssen wir die neuen Formen und Möglichkeiten, die die Sprache uns bietet, untersuchen, um einen der Punkte, die mehr Verwirrung hervorruft, in etwas umzuwandeln, das wir auf angemessene Weise beherrschen.

Die neuen gängigen Methoden für Datums- / Zeitklassen

Um die Arbeit zu vereinfachen, hat uns das Java- Entwicklungsteam eine Reihe gängiger Methoden zur Verfügung gestellt, die wir sowohl bei der Arbeit mit Datumsangaben als auch bei der Arbeit mit Stunden verwenden können . Dies macht den Lernaufwand geringer, wenn für beide Objekttypen ein ähnliches Verhalten vorliegt.

Im Folgenden werden einige der hervorstechenden Methoden aufgeführt und erläutert, warum sie verwendet werden können, damit wir uns später einen Überblick über den praktischen Teil verschaffen können.

bei
Mit dieser Methode können wir eine Kombination des Objekts erstellen, die es mit einem anderen Objekt aufruft.

formatieren
Es ermöglicht uns, einige Parameter zu verwenden, um als Ergebnis ein Datum oder eine Uhrzeit mit einem bestimmten Format zu erzeugen, das wir benötigen.

bekommen
Es erlaubt uns, ein Element zu erhalten, das wir spezifizieren.

ist
Damit können wir überprüfen, ob ein Objekt von dem Typ ist, mit dem wir den Vergleich durchführen.

plus
Es gibt uns die Möglichkeit, eine Summe für das Objekt zu erstellen, das es aufruft, und eine Kopie davon mit dem bereits hinzugefügten Wert zurückzugeben.

zu
Es ermöglicht uns, von einem Typ zu einem anderen zu konvertieren.

Mit diesem Wissen können wir nun zu anderen Themen innerhalb desselben Themas über Datums- und Uhrzeitangaben in Java übergehen .

Berechnen Sie das aktuelle Datum und die Uhrzeit

Da wir erklärt haben, welche Formulare in Java verwendet werden, wurde die neue Version geändert. Wiederholen Sie daher die Beispiele, für die Version 8 des Sprachentwicklungskits erforderlich ist. Andernfalls wird eine Fehlermeldung wie die folgende angezeigt:

See also  Erweiterte Validierungen mit Laravel

java-working-with-dates.jpg

Nachdem wir den Punkt geklärt haben, wollen wir sehen, was wir tun müssen, um Informationen zum aktuellen Datum und zur aktuellen Uhrzeit in Java zu erhalten.

Dazu erstellen wir eine Klasse, in der wir Objekte vom Typ LocalDate , LocalTime und LocalDateTime instanziieren . Jeder von ihnen gibt uns jeweils das aktuelle Datum, die aktuelle Uhrzeit sowie das aktuelle Datum und die aktuelle Uhrzeit an.

Dies ist sehr nützlich in Fällen wie Systemprotokollen, in denen wir den genauen Zeitpunkt erfassen müssen, zu dem eine Aktion ausgeführt wird oder ein Ereignis eintritt, das registriert werden soll. Um das Ziel zu erreichen, können wir einen Code erstellen, der dem folgenden ähnelt:

 java.time. * importieren; public class FechaHoraActual { public static void main (String [] args) { LocalDate currentDate = LocalDate.now (); System.out.println (currentDate); LocalTime currentTime = LocalTime.now (); System.out.println (currentTime); LocalDateTime now = LocalDateTime.now (); System.out.println (jetzt); } } 

Da wir nur sehen, dass wir unsere Objekte der bereits erwähnten Typen deklarieren und ihnen den Wert zuweisen, der uns mit der Methode now () zurückgibt, die wirklich für die Angabe des aktuellen Datums und der aktuellen Uhrzeit verantwortlich ist, kümmern wir uns nur darum drucke jedes der deklarierten Objekte.

Wichtig
Es ist sehr wichtig, das Paket java.time vollständig einzubeziehen , damit wir auf alle Funktionen zugreifen können, die wir verwenden, auch wenn wir Zweifel an der offiziellen Dokumentation haben.

Mal sehen, wie die Ausführung unseres Programms aussieht:

java-working-with-dates2.jpg

Daten formatieren

Ein weiterer Aspekt, den wir immer berücksichtigen müssen, ist die Art und Weise, wie die Informationen angezeigt werden. In Bezug auf Daten haben wir viele Formen, jedoch sind einige in manchen Situationen praktischer als andere. In den meisten Fällen müssen wir zusätzliche Operationen ausführen, mit denen wir zusätzliche Codezeilen schreiben, was in Java 8 nicht mehr so ​​komplex ist.

Abhängig von der Anwendung, die wir entwickeln, möchten wir den Monat anhand seiner Nummer im Kalender oder anhand seines Namens anzeigen. Der Name kann jedoch sowohl für den Tag als auch für das Jahr vollständig oder abgekürzt sein. All dies gibt uns eine sehr große Anzahl von Optionen gleichermaßen gültig. Um dieses Problem zu lösen, können wir den Datumsformatierer verwenden.

See also  Java - Operations Evaluation

Um die Daten zu formatieren, haben wir einige Platzhalter oder Parameter, mit denen wir die im vorherigen Absatz erläuterten Werte erhalten können. Mal sehen, welche die wichtigsten sind.

  • und ermöglicht uns den Zugriff auf das Jahr im vier- oder zweistelligen Format (2014 oder 14).
  • D , ermöglicht es uns, die Anzahl der Tage des Jahres (225) zu erhalten.
  • d gibt im Gegensatz zum vorherigen die Nummer des Tages des betreffenden Monats zurück (27).
  • L hilft uns, den Monat des Jahres in numerischer Form zu erhalten, M gibt uns den Monat in Textform.
  • H , es gibt uns die Zeit.
  • Ja , es gibt uns die Sekunden.
  • m , es ermöglicht uns, die Minuten zu erhalten.
  • a , es gibt uns den am oder pm der stunde.
  • Mit z können wir auf den Namen der Zeitzone zugreifen.

Da wir die grundlegenden Formatparameter kennen, werden wir eine neue Übung versuchen. Im folgenden Code werden wir einige Formate erstellen. Zuerst erhalten wir das aktuelle Datum und konvertieren es in das Jahr / Monat / Tag- Format mit Schrägstrichen Sobald Skripte vorhanden sind, machen wir eine Pause von einem statischen Datum, das aus einer Zeichenfolge mit demselben Format stammt, und schließlich zeigen wir ein vollständiges Datum an, einschließlich morgens oder abends, um die zuvor erläuterten Platzhalter zu verwenden. Sehen wir uns den entsprechenden Code an:

 java.time. * importieren; import java.time.format. *; öffentliche Klasse FormatDate { public static void main (String [] args) { DateTimeFormatter dateFormatted = DateTimeFormatter.ofPattern ("yyyy / LL / dd"); System.out.println (dateFormat.adat (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", dateFormat)); DateTimeFormatter zoneHorary = DateTimeFormatter.ofPattern ("d MMMM, yyyy h: mm a"); System.out.println (ZonedDateTime.now (). Format (Heimatgebiet)); } } 

Als erstes können wir hervorheben, dass wir sowohl das java.time- Paket mit all seinen Klassen als auch das java.time.format- Paket mit all seinen Klassen importieren müssen. Es ist möglich, die Übung durch Importieren der spezifischen Klassen durchzuführen, aber das ist die Aufgabe, und sie haben die Aufgabe, die offizielle Dokumentation einzusehen.

Dann sehen wir, dass wir ein Objekt vom Typ DateTimeFormatter erstellen und die Methode vonPattern () verwenden , die die angegebenen Platzhalter akzeptiert. Wir sehen, dass wir die Joker doppelt als JJJJ platzieren , um die vier Ziffern des aktuellen Jahres zu erhalten, oder auch als mm, um die zwei Ziffern von zu erhalten die Minuten

See also  Wie man offene Ports in Linux kennt und sieht

Schließlich drucken wir jedes Datum mit seinen Formaten aus und erhalten beim Ausführen unseres Programms Folgendes:

java-working-with-dates3.jpg

Hier können wir alle Änderungen beobachten, die wir an der Formatierung der Daten vorgenommen haben. Auf diese Weise können wir sowohl auf menschlicher Ebene als auch für Datenbank- Engines wie MySQL , die das Standarddatum erhalten müssen, einen besseren Sinn und eine bessere Lesbarkeit erzielen im Format JJJJ-LL-TT .

Verwenden Sie statische Daten aus Textzeichenfolgen

Eine andere Verwendung, die wir den neuen Java- Klassen für Datum und Uhrzeit geben können, ist die Verwendung von Daten, die aus einer Textzeichenfolge stammen, von einem Benutzer erstellt werden können, aus einer Textdatei stammen usw. Wichtig ist jedoch, dass wir sie manipulieren und dafür alle verfügbaren Werkzeuge verwenden können.

Lassen Sie uns im folgenden Code sehen, wie wir mit dem, was wir gesehen haben, Änderungen an einem Datum vornehmen können, das aus einer Textzeichenfolge stammt.

 java.time. * importieren; import java.time.format. *; public class Statistisches Datum { public static void main (String [] args) { String startDate = "1906-12-31"; LocalDate dateTitle = LocalDate.parse (startDate); System.out.println ("Datum:" + Aufnahmedatum); String startInitial Time = "1906-12-31T12: 05"; LocalDateTime dateTimeTit = LocalDateTime.parse (startTimeTime); System.out.println ("Datum / Uhrzeit:" + dateToraTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (DateTake + "Mit neuem Format:" + df.format (dateTop)); } } 

Im Code sehen wir, wie wir ein Anfangsdatum in einer Textzeichenfolge erstellen. Mit einem Objekt vom Typ LocalDate verwenden wir die Parse- Methode, um die Textzeichenfolge in ein Objekt vom Typ date zu integrieren. Anschließend drucken wir das Objekt aus und stellen fest, dass es das Datum richtig aufgenommen hat. Wir wiederholen den gleichen Vorgang, verwenden jedoch Datum und Uhrzeit mit LocalDateTime .

Schließlich nehmen wir unser erstes erstelltes Objekt und wenden ein neues Format an, um zu bestätigen, dass wir ein Datum eingeben und bearbeiten können, das wir aus einer Textzeichenfolge erstellt haben. Mal sehen, wie es aussieht, wenn wir unser Programm ausführen:

java-working-with-dates4.jpg

Nachdem wir dieses Tutorial abgeschlossen haben, haben wir gelernt, mit Daten in Java zu arbeiten, indem wir die Verbesserungen in den Klassen verwendet haben, die die neue Version von Java 8 enthalten . Dies kann für viele Anwendungen auf Systemebene und sogar für Benutzeroberflächen nützlich sein.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *