Konvertieren von java.util.Date in java.time-Typen
Problem: Konvertieren zwischen java.util.Date oder java.util.Calendar-Objekte und java.time-Framework-Typen können verwirrend sein. Es ist von entscheidender Bedeutung, die Typen und ihre Zuordnungen zu verstehen.
Lösung:
Java 8 führte das java.time-Framework ein, das mehrere Typen zur Manipulation von Datum und Uhrzeit bietet. Der geeignete java.time-Typ zur Übereinstimmung mit einer java.util.Date-Instanz wird durch die erforderliche Genauigkeit und Zeitzone bestimmt.
Typen und Konvertierungen:
- Instant: Stellt einen Zeitpunkt in UTC dar, ähnlich wie java.util.Date. Verwenden Sie Instant.ofEpochMilli(myUtilDate.getTime()) zum Konvertieren.
-
OffsetDateTime: Eine Wanduhrzeit mit einem Offset von UTC. Wenden Sie einen Offset auf einen Instant an, um einen OffsetDateTime zu erstellen. Verwenden Sie OffsetDateTime.ofInstant(instant, ZoneOffset).
-
ZonedDateTime: Eine Wanduhrzeit mit einer bestimmten Zeitzone. Wenden Sie eine ZoneId auf einen Instant an, um eine ZonedDateTime zu erstellen. Verwenden Sie ZonedDateTime.ofInstant(instant, ZoneId).
-
LocalDate: Ein Datum ohne Uhrzeit oder Zeitzone. Erhalten Sie ein LocalDate, indem Sie ein ZonedDateTime durchlaufen: ZonedDateTime.toLocalDate().
-
LocalTime: Eine Tageszeit ohne Datum oder Zeitzone. Erhalten Sie auf ähnliche Weise eine LocalTime von einer ZonedDateTime: ZonedDateTime.toLocalTime().
-
LocalDateTime: Eine Kombination aus Datum und Uhrzeit ohne Zeitzone. Beachten Sie, dass dies möglicherweise selten verwendet wird, da es sich um einen unspezifischen Zeitpunkt handelt. Verwenden Sie ZonedDateTime.toLocalDateTime().
Konvertierungsfallen:
- Bei der Konvertierung von java.time nach java.util , kann die Präzision verloren gehen (Nanosekunden werden auf Millisekunden gekürzt).
- Bei der Konvertierung von java.util.Date in LocalDate oder LocalDateTime ist eine Zeitzone erforderlich, um das Datum oder die Uhrzeit zu bestimmen.
Fazit:
Das Verständnis der Zuordnung zwischen den Typen java.util.Date oder java.util.Calendar und java.time ist für eine nahtlose Zusammenarbeit unerlässlich. Java.time bietet eine robuste und genaue Datums-/Uhrzeitverarbeitung und die Konvertierung zwischen dem alten und dem neuen Framework wird durch praktische Methoden unterstützt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich java.util.Date in java.time-Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!