」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何將 java.util.Date 轉換為 java.time 的 Instant、OffsetDateTime 或 ZonedDateTime?

如何將 java.util.Date 轉換為 java.time 的 Instant、OffsetDateTime 或 ZonedDateTime?

發佈於2024-11-06
瀏覽:814

How do I convert java.util.Date to java.time\'s Instant, OffsetDateTime, or ZonedDateTime?

將java.util.Date 轉換為java.time 的Instant、OffsetDateTime 或ZonedDateTime

隨著我們向現代java.time 框架遷移,了解如何將遺留java.util.Date 物件轉換為適當的java.time 類型至關重要。以下是等效項的概述:

java.util.Date 到Instant

兩者都代表UTC 中的時刻,因此轉換很簡單:

Instant instant = myUtilDate.toInstant();

java.util.Date myUtilDate = java.util.Date.from(instant);

java.util.Date 到java.time 的OffsetDateTime 或ZonedDateTime

因為這些類型包含時區訊息,從遺留日期中提取區域是必要的:
// If the legacy date is a GregorianCalendar (which can hold time zone info)
if (myUtilCalendar instanceof GregorianCalendar) {
    GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
    ZonedDateTime zdt = gregCal.toZonedDateTime(); // ZonedDateTime with time zone

    java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt);
}
//如果遺留日期是GregorianCalendar(可以保存時區資訊) if (myUtilCalendar GregorianCalendar 實例) { GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar; ZonedDateTime zdt = gregCal.toZonedDateTime(); // 帶時區的 ZonedDateTime java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt); }

其他轉換映射

其他轉換映射舊型java.time 等效其他註釋java.util.Calendar即時轉換為UTC 日期的開始時間轉換為UTC 日期的開始時間保留時區資訊ZonedDateTime需要時區來決定日期java.util.LocalTime即時轉換為UTC 日期的開始
java.util.GregorianCalendarZonedDateTime
.util.LocalDate

java.util.LocalDateTime

    ZonedDateTime
  • 需要時區來決定日期和時間

]How do I convert java.util.Date to java.time\'s Instant, OffsetDateTime, or ZonedDateTime? 
重要注意事項

從java.util.Date 轉換為java.time 類型可能會導致精度損失,如下所示遺留類別不支援奈秒解析度。

轉換為 OffsetDateTime 或 ZonedDateTime 時,必須保留時區資訊以確保正確解釋。

強烈建議使用 java.time 類型在新程式碼中提高了精度和一致性。

最新教學 更多>
  • SOLID 原則使用一些有趣的類比與車輛範例
    SOLID 原則使用一些有趣的類比與車輛範例
    SOLID 是電腦程式設計中五個良好原則(規則)的縮寫。 SOLID 允許程式設計師編寫更易於理解和稍後更改的程式碼。 SOLID 通常與使用物件導向設計的系統一起使用。 讓我們使用車輛範例來解釋 SOLID 原理。想像一下,我們正在設計一個系統來管理不同類型的車輛,例如汽車和...
    程式設計 發佈於2024-11-06
  • 如何從另一個非同步函數中的非同步函數返回解析值?
    如何從另一個非同步函數中的非同步函數返回解析值?
    如何從非同步函數傳回一個值? 在提供的程式碼中,init()方法傳回一個Promise,但getPostById() 方法嘗試直接存取 Promise 傳回的值。為了解決這個問題,需要修改 init() 方法,使其在 Promise 解析後傳回 getPostById() 的值。 更新後的程式碼如下...
    程式設計 發佈於2024-11-06
  • 了解如何使用 React 建立多人國際象棋遊戲
    了解如何使用 React 建立多人國際象棋遊戲
    Hello and welcome! ?? Today I bring a tutorial to guide you through building a multiplayer chess game using SuperViz. Multiplayer games require real-t...
    程式設計 發佈於2024-11-06
  • 如何使用 JavaScript 正規表示式驗證 DD/MM/YYYY 格式的日期?
    如何使用 JavaScript 正規表示式驗證 DD/MM/YYYY 格式的日期?
    使用JavaScript 正規表示式驗證DD/MM/YYYY 格式的日期驗證日期是程式設計中的常見任務,並且能夠確保日期採用特定格式至關重要。在 JavaScript 中,正規表示式提供了執行此類驗證的強大工具。 考慮用於驗證YYYY-MM-DD 格式日期的正規表示式模式:/^\d{4}[\/\-]...
    程式設計 發佈於2024-11-06
  • JavaScript 中的節流與去抖:初學者指南
    JavaScript 中的節流與去抖:初學者指南
    使用 JavaScript 時,過多的事件觸發器可能會降低應用程式的速度。例如,使用者調整瀏覽器視窗大小或在搜尋列中輸入內容可能會導致事件在短時間內重複觸發,進而影響應用程式效能。 這就是節流和去抖可以發揮作用的地方。它們可以幫助您管理在處理過於頻繁觸發的事件時呼叫函數的頻率。 ...
    程式設計 發佈於2024-11-06
  • 在 Go 中匯入私人 Bitbucket 儲存庫時如何解決 403 Forbidden 錯誤?
    在 Go 中匯入私人 Bitbucket 儲存庫時如何解決 403 Forbidden 錯誤?
    Go 從私有Bitbucket 儲存庫匯入問題排查(403 禁止)使用go get 指令從Bitbucket.org 匯入私人儲存庫可能會遇到403 Forbidden 錯誤。若要解決此問題,請依照下列步驟操作:1.建立 SSH 連線:確保您已設定 SSH 金鑰並且能夠使用 SSH 連線至 Bitb...
    程式設計 發佈於2024-11-06
  • Singleton 和原型 Spring Bean 範圍:詳細探索
    Singleton 和原型 Spring Bean 範圍:詳細探索
    当我第一次开始使用 Spring 时,最让我感兴趣的概念之一是 bean 范围的想法。 Spring 提供了各种 bean 作用域,用于确定在 Spring 容器内创建的 bean 的生命周期。最常用的两个范围是 Singleton 和 Prototype。了解这些范围对于设计高效且有效的 Spri...
    程式設計 發佈於2024-11-06
  • 如何有效平滑雜訊資料曲線?
    如何有效平滑雜訊資料曲線?
    優化平滑雜訊曲線考慮近似的資料集:import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) np.random.random(100) * 0.2這包括 20% 的變化。 UnivariateSpline 和移動平均線等方...
    程式設計 發佈於2024-11-06
  • 如何在 MySQL 中為有序序列值重新編號主索引?
    如何在 MySQL 中為有序序列值重新編號主索引?
    為有序序列值重新編號主索引如果您的MySQL 表的主索引(id) 以不一致的順序出現(例如,1、 31, 35, 100),您可能會想要將它們重新排列成連續的系列(1, 2, 3, 4)。 要實現此目的,您可以採用以下方法而不建立臨時表:SET @i = 0; UPDATE table_name S...
    程式設計 發佈於2024-11-06
  • 增強的物​​件文字
    增強的物​​件文字
    ES6引進了3種編寫物件字面量的方法 第一種方法: - ES6 Enhanced object literal syntax can take an external object like salary object and make it a property of the developer...
    程式設計 發佈於2024-11-06
  • 將 Tailwind 配置為設計系統
    將 Tailwind 配置為設計系統
    对于设计系统来说,一致性和理解性就是一切。一个好的设计系统通过实现它的代码的配置来确保实现的一致性。它需要是: 易于理解,无需放弃良好设计所需的细微差别; 可扩展和可维护,且不影响一致性。 使用我的 React 和 Tailwind 的默认堆栈,我将向您展示如何设置自己的版式、颜色和间距默认值,而不...
    程式設計 發佈於2024-11-06
  • 如何根據條件替換 Pandas DataFrame 列中的特定值?
    如何根據條件替換 Pandas DataFrame 列中的特定值?
    Pandas DataFrame:基於條件的目標值取代在Pandas中,通常需要根據某些條件修改DataFrame中的特定值。雖然常見的方法是使用 loc 來選擇行,但了解如何精確定位特定列進行值修改至關重要。 考慮以下 DataFrame,我們希望在其中替換“第一季”中的值超過 1990 且整數為...
    程式設計 發佈於2024-11-06
  • 如何修正 CentOS 7 上的 Yum Baseurl 問題
    如何修正 CentOS 7 上的 Yum Baseurl 問題
    _CentOS 7 Yum Error: Cannot Find a Valid Baseurl for Repo:base/7/x86_64_ 嘿夥計們, 遇到錯誤 can't find a valid baseurl for repo:base/7/x86_64 可能會非常令人沮喪,特別...
    程式設計 發佈於2024-11-06
  • 為什麼從模板化函數呼叫成員函數模板需要「template」關鍵字?
    為什麼從模板化函數呼叫成員函數模板需要「template」關鍵字?
    從範本函式呼叫範本類別的成員函式在提供的程式碼片段中,從另一個範本呼叫成員函式範本會導致編譯錯誤。具體來說,程式碼嘗試從 g() 內部呼叫 A::f()。但是,由於語法問題,此操作失敗。 要解決此問題,必須在成員函數呼叫之前明確指定模板關鍵字。這是因為根據C '03 標準14.2/4,當成員...
    程式設計 發佈於2024-11-06
  • 開發與雲端無關的應用程式
    開發與雲端無關的應用程式
    介紹 最近,我開始從事一個個人項目,我想建立一個與雲端無關的應用程式 - 即它可以部署在任何雲端提供者上,只需最少/無需更改程式碼。主要要求是將業務邏輯與雲端提供者特定邏輯分開。 在這篇文章中,我想分享所遵循的方法。 建立一個具有用於在雲端中執行操作的抽象方法的介面。 建立雲...
    程式設計 發佈於2024-11-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3