ホームページ > Java > &#&チュートリアル > Java の「java.sql.Timestamp」ストレージはタイムゾーンに依存しますか?

Java の「java.sql.Timestamp」ストレージはタイムゾーンに依存しますか?

Linda Hamilton
リリース: 2024-12-13 13:01:10
オリジナル
849 人が閲覧しました

Does Java's `java.sql.Timestamp` Storage Depend on the Time Zone?

java.sql.Timestamp のストレージはタイムゾーンに影響されますか?

JDBC における、java.sql での setTimestamp() メソッドの動作。タイムスタンプはドライバーによって異なる場合があります実装.

ドライバーの動作:

ほとんどのドライバーは、javadoc で説明されている setTimestamp(int paramparIndex, Timestamp x, Calendar cal) の規則に従います。 Calendar オブジェクトが指定されていない場合、ドライバーは通常、アプリケーションを実行している仮想マシンのタイム ゾーンを使用します。

データベース内のタイムスタンプ ストレージ:

setTimestamp( を使用する場合) intparameterIndex,Timestampx) カレンダーを指定しないと、ドライバーはタイムスタンプをデータベースに保存する前に VM のタイムゾーンに変換します。データベース列にタイム ゾーン情報が欠如している場合、この変換によりタイム ゾーン データが失われる可能性があります。

例:

GMT 2 のローカル タイム ゾーンを考慮してください。 UTC タイムスタンプは「2012-12-25 10:00:00 UTC」です。データベースに保存すると、タイムスタンプは「2012-12-25 12:00:00」(GMT 2) として表示されます。アプリケーションによって GMT 0 で取得された場合、タイムスタンプは「2012-12-25 12:00:00 UTC」として解釈されます。

特定のタイム ゾーンでのタイムスタンプの保存:

特定のタイムゾーンのタイムスタンプを保存するには、setTimestamp(int parameterIndex、Timestamp x、Calendar cal) と目的の Calendar インスタンス (例: GMT の Calendar.getInstance(TimeZone.getTimeZone("GMT")))。

Timestamp Retrieval:

同様に、タイムスタンプを取得するときは、必ず同じ時間を使用してください。

JDBC 4.2 での java.time.LocalDateTime の使用:

JDBC 4.2 準拠のドライバーでは、java.time.LocalDateTime (およびjava.time.LocalTime) を介して TIMESTAMP 型と TIME 型を使用します。 get/set/updateObject メソッド。これらのクラスは、タイムゾーンのない時間を表します。

以上がJava の「java.sql.Timestamp」ストレージはタイムゾーンに依存しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート