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

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

Patricia Arquette
Patricia Arquette原創
2024-12-09 00:53:09362瀏覽

How Do I Convert a java.util.Date to a java.time.LocalDate?

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

在Java 8 及更高版本中,java.util. Date 類別具有已被用於表示日期的java.time.LocalDate 類別取代。因此,有必要將 Date 物件轉換為 LocalDate 物件。

轉換過程

  1. 取得即時: Convert使用 toInstant() 將 Date 物件轉換為 Instant

    Date input = new Date();
    Instant instant = input.toInstant();
  2. 指定時區:由於 Date 物件缺少時區信息,因此請選擇時區。這可以是使用 ZoneId.systemDefault() 的系統預設值,也可以是自訂的。

    ZoneId zone = ZoneId.systemDefault();
  3. 獲取ZonedDateTime: 將Instant 和時區結合起來創建一個ZonedDateTime.

    ZonedDateTime zdt = instant.atZone(zone);
  4. 提取LocalDate:使用 toLocalDate() 方法從 ZonedDateTime 擷取本地日期。

    LocalDate date = zdt.toLocalDate();

Java 9 及更高版本最佳化

Java 9引入了這種轉換的簡化方法:

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

說明

  • A java.util.日期表示時間中的一個瞬間,而不是特定的日期。
  • 瞬間缺少時區訊息,因此在轉換為 LocalDate 時必須指定時區。
  • ZonedDateTime 保存本地日期和時間信息,以及時區和相對於 GMT/UTC 的偏移量。

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

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