ホームページ  >  記事  >  Java  >  「java.util.Date」型を「java.time」型に変換するにはどうすればよいですか?

「java.util.Date」型を「java.time」型に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-05 19:05:02726ブラウズ

How to Convert `java.util.Date` to `java.time` Types?

java.util.Date をどの「java.time」型に変換しますか?

説明:

java.time フレームワークは、従来の java.util クラスと比較して、最新の改良された日付と時刻のクラスを提供します。このフレームワークは、より高い柔軟性、精度、機能性を提供します。まだ java.util 型を使用するレガシー コードを操作する場合、2 つのフレームワーク間で変換できる必要があります。

変換オプション:

1 。 java.util.Date から java.time.Instant へ:

  • Instant は、UTC タイムライン上の特定の瞬間をナノ秒の精度で表します。
  • java.util.Date から変換するには、Date オブジェクトで .toInstant() メソッドを使用します:

    <code class="java">Instant instant = myUtilDate.toInstant();</code>

2。 java.util.Calendar から Instant へ:

  • Calendar は内部的にエポックからの時間をミリ秒単位で追跡します。
  • Calendar から変換するには、.toInstant( ) メソッド:

    <code class="java">Instant instant = myUtilCalendar.toInstant() ;</code>

    3. java.util.GregorianCalendar から ZonedDateTime へ:

  • GregorianCalendar にはタイムゾーン情報が含まれています。
  • 変換するには、Calendar を GregorianCalendar にダウンキャストし、 .toZonedDateTime() を使用します。 ZonedDateTime を取得するメソッド:

    <code class="java">if (myUtilCalendar instanceof GregorianCalendar) {
      GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
      ZonedDateTime zdt = gregCal.toZonedDateTime();
    }</code>

4.インスタントから他の java.time タイプ:

  • OffsetDateTime: UTC からのオフセットのある時点を表します (例: 東部時間の「-04:00」)。
  • ZonedDateTime: 特定のタイム ゾーンの時点を表します。
  • LocalDate: 時間またはタイム ゾーンのない日付を表します。
  • LocalTime: 日付または時刻のない時間を表します。 zone.
  • LocalDateTime: タイムゾーンなしの日付と時刻の両方を表します (大まかな近似のみ)。

java.time 型から java.util への変換.Date:

  • インスタントから日付に変換するには、インスタントを抽出し、日付に .toInstant() を適用します:

    <code class="java">java.util.Date myUtilDate = java.util.Date.from(instant);</code>
  • OffsetDateTime と ZonedDateTime からも同様の変換を行うことができます。

注:

java.time 型から java.util 型に変換する場合、精度が異なる場合があります。 java.util.Date と java.util.Calendar はミリ秒のみを処理するのに対し、java.time 型はナノ秒の精度を持つため、失われます。

以上が「java.util.Date」型を「java.time」型に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。