Heim >Java >javaLernprogramm >Wie kann man java.util.Date effizient in java.time.LocalDate konvertieren?

Wie kann man java.util.Date effizient in java.time.LocalDate konvertieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-07 01:18:19751Durchsuche

How to Efficiently Convert java.util.Date to java.time.LocalDate?

Konvertierung von java.util.Date in java.time.LocalDate

Problem:

Wie können Sie ein java.util.Date-Objekt effizient in das neuere java.time.LocalDate-Format konvertieren, das in eingeführt wurde? JDK 8/JSR-310?

Kurze Antwort:

Um die Konvertierung zu erreichen, verwenden Sie den folgenden Code:

Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

Java 9-Lösung:

Eine effizientere Alternative wurde in Java SE hinzugefügt 9:

Date input = new Date();
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());

Erklärung:

Anders als der Name vermuten lässt, bezeichnet ein java.util.Date-Objekt einen Zeitpunkt und nicht ein bestimmtes Datum. Um ein java.util.Date in ein kompatibles java.time.LocalDate zu konvertieren, sind die folgenden Schritte erforderlich:

  1. Verwenden Sie die toInstant()-Methode, um ein Instant-Objekt zu erhalten, das denselben Zeitpunkt darstellt wie das Date-Objekt.
  2. Wenden Sie mithilfe der atZone()-Methode eine bestimmte Zeitzone auf das Instant-Objekt an. Es kann die Standardzeitzone des Systems (ZoneId.systemDefault()) oder eine benutzerdefinierte Zeitzone verwendet werden.
  3. Extrahieren Sie das LocalDate-Objekt aus dem resultierenden ZonedDateTime-Objekt mit toLocalDate().

Dieser Konvertierungsprozess berücksichtigt die Tatsache, dass ein java.util.Date keine Zeitzoneninformationen enthält. Die Angabe der Zeitzone ermöglicht die genaue Umrechnung auf ein bestimmtes lokales Datum.

Das obige ist der detaillierte Inhalt vonWie kann man java.util.Date effizient in java.time.LocalDate konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn