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.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ナノ秒をサポートすることで精度が向上します。
の回避Dates
著者は、Date クラスを直接使用することを推奨せず、その代わりに、日付と時刻を、エポックからのミリ秒またはナノ秒数を表すプレーンな Long 値として保存することを推奨しています。このアプローチはデータベースに移植可能であり、JDBC/Java Date API の複雑さを回避します。
以上がJava JDBC 日付: `java.util.Date` と `java.sql.Date` – どちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。