將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中文網其他相關文章!