java.time.LocalDateTime と java.util.Date の間の変換
Java 8 では、Java を含む新しい日付と時刻 API が導入されました。タイムゾーンに依存しない日付付き時刻値の .time.LocalDateTime クラス。ただし、多くのレガシー コードベースでは依然として古い java.util.Date クラスが使用されています。このため、2 つのクラス間で変換する方法が疑問になります。
直接変換する方法はありませんが、次の手順で解決できます。
変換java.util.日付インスタント:
Date in = new Date(); Instant instant = in.toInstant();
インスタントを LocalDateTime に変換 (タイムゾーンを指定):
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDateTime を ZonedDateTime に変換します (指定タイムゾーン):
ZoneId systemZoneId = ZoneId.systemDefault(); ZonedDateTime zdt = ldt.atZone(systemZoneId);
ZonedDateTime をインスタントに変換:
Instant convertedInstant = zdt.toInstant();
インスタントを元に変換java.util.Date:
Date out = Date.from(convertedInstant);
LocalDateTime への変換と java.util.Date への変換では、夏時間により異なる瞬間が生じる可能性があることに注意することが重要です。時間を節約します。
さらに、java.util.Date は、10 月 15 日より前の日付には別のカレンダーを使用します。 1582 ですが、java.time.* は常に ISO カレンダーを使用します。この違いは、1582 年より前の日付を比較する場合の互換性に影響を与える可能性があります。
以上がjava.time.LocalDateTime と java.util.Date の間で変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。