ホームページ >Java >&#&チュートリアル >java.util.Date を java.time の Instant、OffsetDateTime、または ZonedDateTime に変換するにはどうすればよいですか?
最新の java.time フレームワークに移行する際に、java.util.Date を java.time の Instant、OffsetDateTime、または ZonedDateTime に変換します
、従来の java.util.Date オブジェクトを適切な java.time に変換する方法を知ることが重要です。 種類。等価性の概要は次のとおりです:
java.util.Date から Instant
どちらも UTC での瞬間を表すため、変換は簡単です:
<code class="java">Instant instant = myUtilDate.toInstant(); java.util.Date myUtilDate = java.util.Date.from(instant);</code>
java.util.Date から java.time の OffsetDateTime またはZonedDateTime
これらの型にはタイム ゾーン情報が組み込まれているため、従来の日付からゾーンを抽出する必要があります。
<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>
追加の変換マッピング
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 |
重要考慮事項
以上がjava.util.Date を java.time の Instant、OffsetDateTime、または ZonedDateTime に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。