java.util.Date から java.time 型への変換
問題: java.util.Date 間の変換または、java.util.Calendar オブジェクトと java.time フレームワークの種類は混乱を招く可能性があります。型とそのマッピングを理解することが重要です。
解決策:
Java 8 では java.time フレームワークが導入され、日付と時刻を操作するためのいくつかの型が提供されています。 java.util.Date インスタンスに一致する適切な java.time 型は、必要な精度とタイムゾーンによって決まります。
型と変換:
- Instant: java.util.Date と同様に、UTC でのインスタントを表します。 Instant.ofEpochMilli(myUtilDate.getTime()) を使用して変換します。
-
OffsetDateTime: UTC からのオフセットを含む実時間。インスタントにオフセットを適用して、OffsetDateTime を作成します。 OffsetDateTime.ofInstant(instant, ZoneOffset).
-
ZonedDateTime: 特定のタイム ゾーンの実測時刻を使用します。 ZoneId をインスタントに適用して ZonedDateTime を作成します。 ZonedDateTime.ofInstant(instant, ZoneId).
-
LocalDate: 時刻またはタイムゾーンのない日付を使用します。 ZonedDateTime を介して LocalDate を取得します: ZonedDateTime.toLocalDate().
-
LocalTime: 日付またはタイムゾーンのない時刻。同様に、ZonedDateTime から LocalTime を取得します。 ZonedDateTime.toLocalTime().
-
LocalDateTime: タイムゾーンのない日付と時刻の組み合わせ。これは非特定の時点を表すため、めったに使用されないことに注意してください。 ZonedDateTime.toLocalDateTime()を使用します。
変換の落とし穴:
- java.time から java.util に変換する場合、精度が失われる可能性があります (ナノ秒はミリ秒に切り捨てられます)。
- java.util.Date から LocalDate または LocalDateTime に変換する場合、日付または時刻を決定するにはタイム ゾーンが必要です。
結論:
シームレスな相互運用には、java.util.Date または java.util.Calendar と java.time 型の間のマッピングを理解することが不可欠です。 Java.time は堅牢かつ正確な日時処理を提供し、新旧フレームワーク間の変換は便利なメソッドを通じてサポートされます。
以上がjava.util.Date を java.time 型に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。