ホームページ > Java > &#&チュートリアル > java.time.LocalDateTime と java.util.Date の間で変換するにはどうすればよいですか?

java.time.LocalDateTime と java.util.Date の間で変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-13 02:53:02
オリジナル
260 人が閲覧しました

How to Convert Between java.time.LocalDateTime and java.util.Date?

java.time.LocalDateTime と java.util.Date の間の変換

Java 8 の java.time パッケージの導入により、開発者はその新しい API を処理に採用しました。日時。そのクラスの中で、LocalDateTime はタイムゾーンに依存しない日付と時刻の値を保持します。

ただし、従来のコードは java.util.Date クラスに依存することがよくあります。古いコードベースと新しいコードベースを統合する場合、これら 2 つのクラス間の変換が必要になります。

変換アプローチ:

From java.util.Date to LocalDateTime:

  1. toInstant() メソッドを使用して java.util.Date を Instant に変換します。
  2. ZoneId.systemDefault() を使用してタイム ゾーンを指定し、ofInstant( 経由で LocalDateTime を作成します) ).

コード:

Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
ログイン後にコピー

LocalDateTime から java.util.Date へ:

  1. atZone(ZoneId) を使用して LocalDateTime を ZonedDateTime に変換します。
  2. toInstant() を使用して ZonedDateTime を Instant に変換し、次に Date.from() を使用して java.util.Date に変換します。

コード:

LocalDateTime ldt = ...
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
Date output = Date.from(zdt.toInstant());
ログイン後にコピー

夏時間 (DST) に関する注意:

LocalDateTime から java.util への変換ZonedDateTime 経由の .Date では、DST が原因で予期しない動作が発生する可能性があります。特定の LocalDateTime 値が存在しないか、DST 移行中に 2 回発生する可能性があります。詳細については、atZone(ZoneId) の Javadoc を参照してください。

追加の考慮事項:

  • java.util.Date はタイムライン上の瞬間を表します。一方、java.time.* の Instant は、タイムゾーンのない瞬間を表します。
  • LocalDateTime と java.util.Date の間で変換すると、1582 年以前の暦法 (ユリウス暦とグレゴリオ暦) の不一致により、異なる瞬間が生じる可能性があります。 .

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート