Heim > Java > javaLernprogramm > Wie konvertiert man zwischen java.time.LocalDateTime und java.util.Date?

Wie konvertiert man zwischen java.time.LocalDateTime und java.util.Date?

Linda Hamilton
Freigeben: 2024-11-13 02:53:02
Original
298 Leute haben es durchsucht

How to Convert Between java.time.LocalDateTime and java.util.Date?

Konvertieren zwischen java.time.LocalDateTime und java.util.Date

Mit der Einführung des java.time-Pakets in Java 8 haben Entwickler dessen neue API für die Handhabung angenommen Datum und Uhrzeit. Unter seinen Klassen enthält LocalDateTime einen von der Zeitzone unabhängigen Datum-mit-Uhrzeit-Wert.

Legacy-Code basiert jedoch häufig auf der Klasse java.util.Date. Bei der Integration alter und neuer Codebasen ist eine Konvertierung zwischen diesen beiden Klassen erforderlich.

Konvertierungsansatz:

Von java.util.Date zu LocalDateTime:

  1. Konvertieren Sie das java.util.Date mithilfe der toInstant()-Methode in ein Instant.
  2. Geben Sie mit ZoneId.systemDefault() eine Zeitzone an, um über ofInstant( ).

Code:

Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
Nach dem Login kopieren

Von LocalDateTime zu java.util.Date:

  1. Verwenden Sie atZone(ZoneId), um LocalDateTime in eine ZonedDateTime zu konvertieren.
  2. Konvertieren Sie ZonedDateTime mit toInstant() in einen Instant und dann mit Date.from() in ein java.util.Date.

Code:

LocalDateTime ldt = ...
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
Date output = Date.from(zdt.toInstant());
Nach dem Login kopieren

Hinweis zur Sommerzeit (DST):

Konvertierung von LocalDateTime in java.util .Date über ZonedDateTime kann aufgrund der Sommerzeit zu unerwartetem Verhalten führen. Bestimmte LocalDateTime-Werte sind möglicherweise nicht vorhanden oder treten bei Sommerzeitübergängen zweimal auf. Einzelheiten finden Sie im Javadoc für atZone(ZoneId).

Zusätzliche Überlegungen:

  • java.util.Date stellt einen Zeitpunkt auf der Zeitachse dar. während Instant in java.time.* einen Zeitpunkt ohne Zeitzone darstellt.
  • Die Konvertierung zwischen LocalDateTime und java.util.Date kann aufgrund von Diskrepanzen in Kalendersystemen (Julian vs. Gregorian) vor 1582 zu unterschiedlichen Zeitpunkten führen .

Das obige ist der detaillierte Inhalt vonWie konvertiert man zwischen java.time.LocalDateTime und java.util.Date?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage