在java.time.LocalDateTime 和java.util.Date 之間轉換
Java 8 引入了新的日期和時間API,包括java .time.LocalDateTime 類,用於與時區無關的日期與時間值。然而,許多遺留程式碼庫仍然使用舊的 java.util.Date 類別。這就提出瞭如何在兩個類別之間進行轉換的問題。
雖然沒有直接的轉換方法,但以下步驟提供了解決方案:
轉換java.util.日期到即時:
Date in = new Date(); Instant instant = in.toInstant();
將即時轉換為LocalDateTime(指定時區):
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
將LocalDateTime 轉換為ZonedDateTime ( 🎜>
將ZonedDateTime 轉換為即時:ZoneId systemZoneId = ZoneId.systemDefault(); ZonedDateTime zdt = ldt.atZone(systemZoneId);
將即時轉換回java.util.Date:
Instant convertedInstant = zdt.toInstant();
要注意的是,由於夏令時,轉換為LocalDateTime 並返回 java.util.Date 可能會導致不同的時刻節省時間。
Date out = Date.from(convertedInstant);
以上是如何在 java.time.LocalDateTime 和 java.util.Date 之間進行轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!