ホームページ > データベース > mysql チュートリアル > 「useTimezone=true」が失敗した場合に MySQL と Java のタイムゾーンの不一致を解決する方法?

「useTimezone=true」が失敗した場合に MySQL と Java のタイムゾーンの不一致を解決する方法?

Patricia Arquette
リリース: 2024-12-01 20:33:12
オリジナル
682 人が閲覧しました

How to Resolve MySQL and Java Timezone Mismatches When `useTimezone=true` Fails?

Java を使用したデータベース接続での MySQL タイムゾーンの調整

問題の説明:

MySQL が動作していますTomcat は「GMT」を使用していますが、タイムゾーンは「GMT 8」です。この不一致により、Java を使用してデータベースと対話する場合、日時の格納と取得に不整合が生じます。接続 URL で「useTimezone=true」と「serverTimezone=GMT」を設定しても、問題は解決しません。

解決策:

タイムゾーンの不一致を解決するには、次の手順を実行します。アプローチが推奨されます:

  1. レガシー日付時刻を無効にするコード:

    「useLegacyDatetimeCode=false」を含むように接続 URL を更新します。これにより、MySQL でタイムスタンプを管理するための、より新しく正確な方法が有効になります。

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false";
    ログイン後にコピー
  2. タイムスタンプに Null Calendar を使用する:

    設定時setTimestamp メソッドを使用してタイムスタンプを設定する場合は、Calendar オブジェクトが 3 番目のパラメータとして指定されていないことを確認してください。この手順により、データベースのタイムゾーンに従って日付オブジェクトをフォーマットできるようになります。

    getTimestamp(int, Timestamp)
    ログイン後にコピー
  3. サーバーのタイムゾーンを指定する (オプション):

    MySQL がサーバーのタイムゾーンを決定する際にあいまいさが発生した場合は、接続時に明示的に指定する必要がある場合があります。 URL.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";
    ログイン後にコピー

これらの対策を実装することで、MySQL と Java の間のタイムゾーンの不一致を解消し、データベースでの正しい日時の保存と取得を保証できます。

以上が「useTimezone=true」が失敗した場合に MySQL と Java のタイムゾーンの不一致を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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