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

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

DDD
DDD原創
2024-12-10 07:30:12419瀏覽

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

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

JDK 8/JSR-310 中引入的java.javatime提供了比遺留的java.util.Date 類別更現代、更全面的日期和時間API。使用以下步驟可以有效地將java.util.Date 物件轉換為新的java.time.LocalDate:

1.轉換為即時:

java.util .Date 類別表示自紀元以來以毫秒為單位的即時時間。若要將 java.util.Date 物件轉換為即時對象,請使用 toInstant() 方法。

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

2.應用時區:

瞬間不包含時區資訊。要將其轉換為本地日期,我們需要應用時區。使用 atZone() 方法和所需的時區。

ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());

3.提取 LocalDate:

ZonedDateTime 包含日期和時間以及時區。若要擷取 LocalDate,請使用 toLocalDate() 方法。

LocalDate date = zdt.toLocalDate();

Java 9 簡化:

Java 9 引入了一種新方法來簡化此轉換:

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

此方法使用預設時區直接將即時時間轉換為LocalDate。比之前的方法更簡潔有效率。

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

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