Konvertieren zwischen java.time.LocalDateTime und java.util.Date
Java 8 führte eine neue Datums- und Uhrzeit-API ein, einschließlich der Java .time.LocalDateTime-Klasse für zeitzonenunabhängige Datums-mit-Uhrzeit-Werte. Viele ältere Codebasen verwenden jedoch immer noch die ältere Klasse java.util.Date. Dies wirft die Frage auf, wie zwischen den beiden Klassen konvertiert werden soll.
Obwohl es keine direkten Konvertierungsmethoden gibt, bieten die folgenden Schritte eine Lösung:
Konvertieren java.util.Date to Instant:
Date in = new Date(); Instant instant = in.toInstant();
Konvertieren Sofort zu LocalDateTime (Zeitzone angeben):
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDateTime in ZonedDateTime konvertieren (Zeitzone angeben):
ZoneId systemZoneId = ZoneId.systemDefault(); ZonedDateTime zdt = ldt.atZone(systemZoneId);
Konvertieren Sie ZonedDateTime in Instant:
Instant convertedInstant = zdt.toInstant();
Instant zurück in java.util konvertieren.Datum:
Date out = Date.from(convertedInstant);
Es ist wichtig zu beachten, dass die Konvertierung zu LocalDateTime und zurück zu java.util.Date aufgrund der Sommerzeit zu einem anderen Zeitpunkt führen kann Zeit.
Darüber hinaus verwendet java.util.Date einen anderen Kalender für Daten vor dem 15. Oktober 1582, während java.time.* den ISO-Kalender für alle Zeiten verwendet. Dieser Unterschied kann die Kompatibilität beeinträchtigen, wenn Daten vor 1582 verglichen werden.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich zwischen java.time.LocalDateTime und java.util.Date?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!