JDBC 中的日期處理:java.util.Date 與java.sql.Date
在JDBC 中,日期處理可能特別令人困惑,因為多個Date 類別的存在。本文探討了 java.util.Date 和 java.sql.Date 之間的主要區別,以指導開發人員何時以及為何使用每個類別。
java.util.Date
java.util.Date 表示自紀元以來的絕對時間點(以毫秒為單位)。它是時區感知的,這意味著它在將毫秒轉換為本地日期/時間時包含當前時區偏移。
java.sql.Date
java.sql. sql.Date 表示 SQL DATE 值,只包含年、月、日資訊。它與時區無關,這意味著它不受當前時區偏移的影響。
用哪一個?
java.util.Date 和 java.util.Date 之間的選擇java.sql.Date 取決於正在存取的欄位的 SQL 資料類型。下表總結了用於每種SQL 資料類型的相應類別:
SQL Data Type | Java Class |
---|---|
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.util.Date or java.sql.Timestamp |
對於TIMESTAMP 字段,java.util.Date 和java.sql.Timestamp 都可以使用,但java.sql.Timestamp透過java.sql.Timestamp透過支援納秒提供額外的精度。
避免日期
作者建議不要直接使用任何Date 類,而是建議將日期和時間存儲為純長值,表示自紀元以來的毫秒數或奈秒數。這種方法是資料庫可移植的,避免了 JDBC/Java Date API 的複雜性。
以上是Java JDBC 日期:「java.util.Date」與「java.sql.Date」-我該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!