Heim >Java >javaLernprogramm >Wie konvertiere ich java.util.Date in Instant, OffsetDateTime oder ZonedDateTime von java.time?
Konvertieren Sie java.util.Date in java.times Instant, OffsetDateTime oder ZonedDateTime
Während wir auf das moderne java.time-Framework migrieren , ist es wichtig zu wissen, wie man ältere java.util.Date-Objekte in die entsprechenden java.time-Typen konvertiert. Hier ist eine Übersicht der Äquivalenzen:
java.util.Date to Instant
Beide stellen einen Moment in UTC dar, daher ist die Umrechnung unkompliziert:
<code class="java">Instant instant = myUtilDate.toInstant(); java.util.Date myUtilDate = java.util.Date.from(instant);</code>
java.util.Date zu OffsetDateTime oder ZonedDateTime von java.time
Da diese Typen Zeitzoneninformationen enthalten, ist das Extrahieren der Zone aus dem alten Datum erforderlich:
<code class="java">// If the legacy date is a GregorianCalendar (which can hold time zone info) if (myUtilCalendar instanceof GregorianCalendar) { GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar; ZonedDateTime zdt = gregCal.toZonedDateTime(); // ZonedDateTime with time zone java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt); }</code>
Zusätzliche Konvertierungszuordnungen
Legacy Type | java.time Equivalent | Additional Notes |
---|---|---|
java.util.Calendar | Instant | Converts to the start of the day in UTC |
java.util.GregorianCalendar | ZonedDateTime | Retains time zone information |
java.util.LocalDate | ZonedDateTime | Requires a time zone to determine the date |
java.util.LocalTime | Instant | Converts to the start of the day in UTC |
java.util.LocalDateTime | ZonedDateTime | Requires a time zone to determine the date and time |
Wichtige Überlegungen
Das obige ist der detaillierte Inhalt vonWie konvertiere ich java.util.Date in Instant, OffsetDateTime oder ZonedDateTime von java.time?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!