CodeGym /Java-Kurse /Modul 1: Java Syntax /Nützliche Nuancen bei der Arbeit mit der DateTime-API

Nützliche Nuancen bei der Arbeit mit der DateTime-API

Modul 1: Java Syntax
Level 27 , Lektion 4
Verfügbar

1. LocalDateTimeKlasse

Die LocalDateTimeKlasse kombiniert die Fähigkeiten der Klassen LocalDateund LocalTime: Sie speichert sowohl ein Datum als auch eine Uhrzeit. Seine Objekte sind ebenfalls unveränderlich und seine Methoden ähneln denen der LocalDateund- LocalTimeKlassen.

Aktuelles Datum und aktuelle Uhrzeit abrufen

Hier ist alles wie erwartet: Wir nutzen die now()Methode. Beispiel:

Code Konsolenausgabe
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Bei der Anzeige auf dem Bildschirm werden Datum und Uhrzeit durch den Buchstaben getrennt T.

Ein bestimmtes Datum und eine bestimmte Uhrzeit abrufen

LocalDateEs überrascht nicht, dass alles den Klassen und ähnelt LocalTime– wir verwenden die of()Methode:

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Erstens gibt es Parameter, die das Datum in denselben Formaten wie in der LocalDateKlasse angeben. Dann gibt es Parameter, die die Zeit in den gleichen Formaten wie in der LocalTimeKlasse angeben. of()Nachfolgend finden Sie eine Liste aller Variationen der Methode:

Methoden
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

LocalDateSie können das Datum direkt oder indirekt über und- Objekte festlegen LocalTime:

Code
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Konsolenausgabe
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

Die LocalDateTimeKlasse verfügt über Methoden zum Abrufen von Elementen eines Datums und/oder einer Uhrzeit. Sie spiegeln genau die Methoden der LocalDateund- LocalTimeKlassen wider. Wir werden sie hier nicht wiederholen.



2. InstantKlasse

Die Entwickler von Java haben auch die alten Methoden nicht vergessen.

Die Date Time API enthält eine Instant-Klasse zum Arbeiten mit der Zeit, die für Prozesse gedacht ist, die in Computern ablaufen. Anstelle von Stunden, Minuten und Sekunden handelt es sich um Sekunden, Millisekunden und Nanosekunden.

Diese Klasse verfügt über zwei Felder, die Folgendes darstellen:

  • die Anzahl der Sekunden , die seit dem 1. Januar 1970 vergangen sind
  • eine Anzahl von Nanosekunden

Wurde der Kurs für Entwickler entwickelt? Ja. Deshalb wird die Zeit in der Unix-Zeit berechnet, die Anfang 1970 beginnt.

Man könnte sogar sagen, dass es sich bei der InstantKlasse um eine vereinfachte Version der DateKlasse handelt, die nur das enthält, was Programmierer benötigen.

InstantSie können ein Objekt auf genau die gleiche Weise erhalten wie ein LocalTimeObjekt:

Instant timestamp = Instant.now();

Wo timestampist eine InstantVariable und ein Aufruf der statischen Methode der Klasse.Instant.now()now()Instant

Beispiel:

Code Konsolenausgabe
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Sie können mit Variationen der of()Methode auch ein neues Objekt erstellen, indem Sie die seit dem 1. Januar 1970 verstrichene Zeit übergeben:

ofEpochMilli(long milliseconds)
Sie müssen die Anzahl der Millisekunden übergeben
ofEpochSecond(long seconds)
Sie müssen die Anzahl der Sekunden übergeben
ofEpochSecond(long seconds, long nanos)
Sie müssen die Sekunden und Nanosekunden übergeben

InstantFür Objekte verfügbare Methoden

Die Instant-Klasse verfügt über zwei Methoden, die die Werte ihrer Felder zurückgeben:

long getEpochSecond()
Anzahl der Sekunden, die seit dem 1. Januar 1970 vergangen sind
int getNano()
Nanosekunden.
long toEpochMilli()
Anzahl der Millisekunden, die seit dem 1. Januar 1970 vergangen sind

Es gibt auch Methoden, um neue InstantObjekte basierend auf einem vorhandenen zu erstellen:

Instant plusSeconds(long)
Fügt der aktuellen Zeit Sekunden hinzu
Instant plusMillis(long)
Fügt Millisekunden hinzu
Instant plusNanos(long)
Fügt Nanosekunden hinzu
Instant minusSeconds(long)
Subtrahiert Sekunden
Instant minusMillis(long)
Subtrahiert Millisekunden
Instant minusNanos(long)
Subtrahiert Nanosekunden

Beispiele:

Code Konsolenausgabe
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION