java.sql.Timestamp のタイムゾーンは固有ですか?
背景:
JDBC の setTimestamp( int patternIndex, Timestamp x) メソッドは、タイムゾーンを明示的に指定せずにデータベース列にタイムスタンプを追加します。ここで疑問が生じます: Timestamp はタイムゾーン情報を伝達しますか?
答え:
いいえ、java.sql.Timestamp は本質的にタイムゾーン情報を伝達しません。
説明:
通話時setTimestamp(...) を使用すると、JDBC ドライバーは、アプリケーションを実行している仮想マシンのタイムゾーンに基づいて、保存する日付と時刻を決定します。これは、保存された値にはタイムゾーン情報が保持されないことを意味します。
例:
次のシナリオを考えてみましょう:
この場合、ドライバーは UTC 時間を (仮想マシンのタイムゾーンに基づいて) IST に変換し、これを「20121225 12:00:00」として保存します。 Database.
特定のタイムゾーンでのタイムスタンプの保存:
特定のタイムゾーンでタイムスタンプを保存するには、setTimestamp(int patternIndex, Timestamp x, Calendar cal) メソッドを使用します。タイムスタンプがそれに応じて保存されるように、目的のタイムゾーンを持つ Calendar オブジェクトを指定します。
追加の考慮事項:
以上が「java.sql.Timestamp」にはタイムゾーン情報が保存されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。