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

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

Mary-Kate Olsen
發布: 2024-12-06 22:12:14
原創
182 人瀏覽過

How do I convert between java.time.LocalDateTime and java.util.Date?

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

Java 8 引入了新的日期和時間API,包括java .time.LocalDateTime 類,用於與時區無關的日期與時間值。然而,許多遺留程式碼庫仍然使用舊的 java.util.Date 類別。這就提出瞭如何在兩個類別之間進行轉換的問題。

雖然沒有直接的轉換方法,但以下步驟提供了解決方案:

  1. 轉換java.util.日期到即時:

    Date in = new Date();
    Instant instant = in.toInstant();
    登入後複製
  2. 將即時轉換為LocalDateTime(指定時區):

    LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
    登入後複製
  3. 將LocalDateTime 轉換為ZonedDateTime ( 🎜>

    將ZonedDateTime 轉換為即時:
    ZoneId systemZoneId = ZoneId.systemDefault();
    ZonedDateTime zdt = ldt.atZone(systemZoneId);
    登入後複製
  4. 將即時轉換回java.util.Date:
    Instant convertedInstant = zdt.toInstant();
    登入後複製
  5. 要注意的是,由於夏令時,轉換為LocalDateTime 並返回 java.util.Date 可能會導致不同的時刻節省時間。

    Date out = Date.from(convertedInstant);
    登入後複製
    此外,java.util.Date 對 1582 年 10 月 15 日之前的日期使用不同的日曆,而 java.time.* 則始終使用 ISO 日曆。在比較 1582 年之前的日期時,這種差異可能會影響相容性。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板