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

如何在 java.time.LocalDateTime 和 java.util.Date 之間轉換?

Linda Hamilton
Linda Hamilton原創
2024-11-13 02:53:02261瀏覽

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 類別。當整合新舊程式碼庫時,這兩個類別之間的轉換是必要的。

轉換方法:

從java.util.Date 到LocalDateTime:

  1. 使用方法🎜>使用方法將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() 將 ZonedDateTime 轉換為 java.util.Date。

代碼:

LocalDateTime ldt = ...
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
Date output = Date.from(zdt.toInstant());

關於夏令時(DST) 的注意事項:

其他注意事項:

    java.util.Date 表示時間線上的瞬間,而java.time.* 中的Instant 表示沒有時區的瞬間。
  • LocalDateTime 與 java.util.Date 之間的轉換可能會因 1582 年之前的日曆系統(儒略曆與公曆)差異而導致不同的瞬間.

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

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