ホームページ > Java > &#&チュートリアル > 「java.sql.Timestamp」にはタイムゾーン情報が保存されますか?

「java.sql.Timestamp」にはタイムゾーン情報が保存されますか?

Barbara Streisand
リリース: 2024-12-24 19:09:13
オリジナル
869 人が閲覧しました

Does `java.sql.Timestamp` Store Time Zone Information?

java.sql.Timestamp のタイムゾーンは固有ですか?

背景:

JDBC の setTimestamp( int patternIndex, Timestamp x) メソッドは、タイムゾーンを明示的に指定せずにデータベース列にタイムスタンプを追加します。ここで疑問が生じます: Timestamp はタイムゾーン情報を伝達しますか?

答え:

いいえ、java.sql.Timestamp は本質的にタイムゾーン情報を伝達しません。

説明:

通話時setTimestamp(...) を使用すると、JDBC ドライバーは、アプリケーションを実行している仮想マシンのタイムゾーンに基づいて、保存する日付と時刻を決定します。これは、保存された値にはタイムゾーン情報が保持されないことを意味します。

例:

次のシナリオを考えてみましょう:

  • アプリケーションのタイムゾーン: インド標準時 (IST)
  • データベースのタイムゾーン: IST
  • タイムスタンプ値: "20121225 10:00:00 UTC"

この場合、ドライバーは UTC 時間を (仮想マシンのタイムゾーンに基づいて) IST に変換し、これを「20121225 12:00:00」として保存します。 Database.

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

特定のタイムゾーンでタイムスタンプを保存するには、setTimestamp(int patternIndex, Timestamp x, Calendar cal) メソッドを使用します。タイムスタンプがそれに応じて保存されるように、目的のタイムゾーンを持つ Calendar オブジェクトを指定します。

追加の考慮事項:

  • 取得: getTimestamp(...) を使用してタイムスタンプを取得すると、ドライバーは仮想マシンのタイムゾーンを使用して値を解釈します。 Calendar オブジェクトが指定されている場合を除きます。
  • java.time.LocalDateTime: JDBC 4.2 準拠のドライバーは、TIMESTAMP データの java.time.LocalDateTime をサポートします。これにより、タイムゾーンを変換せずにタイムスタンプを直接マッピングできます。

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

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