首頁 >Java >java教程 >如何將'java.util.Date”轉換為'java.time.LocalDate”?

如何將'java.util.Date”轉換為'java.time.LocalDate”?

Linda Hamilton
Linda Hamilton原創
2024-12-08 02:49:10812瀏覽

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

將java.util.Date 轉換為java.time.LocalDate

Java 的日期和時間API 在JDK 8/JSR-310中進行了大修,引入了處理日期相關操作的新範例。此轉換中的常見任務是將現有 java.util.Date 物件轉換為新的 java.time.LocalDate 格式。

簡短回答

將 java.util.Date 物件轉換為新的 java.time.LocalDate 格式。 util.Date 到 LocalDate,遵循這些步驟:

Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

說明

java.util.Date 表示沒有任何時區資訊的瞬時時間。但是,LocalDate 表示沒有時間或時區的特定日曆日期。

要將 Date 轉換為 LocalDate,必須先使用 toInstant() 方法將 Date 轉換為 Instant。 Instant 沒有與之關聯的時區。

接下來,您需要將時區應用於 Instant 以取得 ZonedDateTime 物件。您可以使用 ZoneId.systemDefault() 來取得預設系統時區。

最後,您可以使用 toLocalDate() 方法從 ZonedDateTime 物件中擷取 LocalDate 元件。

Java 9 答案

Java SE 9 引入了上述內容的更簡單的替代方案conversion:

Date input = new Date();
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());

此方法直接將Date轉換為LocalDate,不需要中間的ZonedDateTime 物件。

以上是如何將'java.util.Date”轉換為'java.time.LocalDate”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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