首頁 >Java >java教程 >如何在 Java 8 LocalDateTime 和 java.util.Date 之間進行轉換?

如何在 Java 8 LocalDateTime 和 java.util.Date 之間進行轉換?

DDD
DDD原創
2024-11-19 19:57:02390瀏覽

How to Convert Between Java 8 LocalDateTime and java.util.Date?

在Java 8 LocalDateTime 和java.util.Date 之間轉換

從java.util.Date 轉換為LocalDateTime:

將java.util.Date 物件轉換為a LocalDateTime,首先使用其toInstant() 方法將Date 轉換為Instant:

Date in = new Date();
Instant instant = in.toInstant();

然後使用LocalDateTime.ofInstant() 建立一個LocalDateTime 對象,指定所需的時區:

LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

從LocalDateTime 轉換為java.util.Date:

要將LocalDateTime 轉換回java.util.Date,首先使用其atZone() 和toInstant() 方法將其轉換為Instant:

LocalDateTime ldt = ...
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
Instant instant = zdt.toInstant();

最後,從建立一個新的java.util.Date物件即時:

Date out = Date.from(instant);

注意事項:

  • 由於夏令時,從 LocalDateTime 轉換到 ZonedDateTime 的轉換可能會導致意外行為。
  • java.util.Date 和 LocalDateTime 之間的往返可能會導致不同的時刻,因為夏令時。
  • java.time.* 對所有日期使用 ISO 日曆系統,而 java.util.Date 在 1582 年 10 月 15 日之後使用公曆,在此之前使用儒略曆。

以上是如何在 Java 8 LocalDateTime 和 java.util.Date 之間進行轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn