Heim >Datenbank >MySQL-Tutorial >Wie behebe ich Nichtübereinstimmungen zwischen MySQL- und Java-Zeitzonen, wenn „useTimezone=true' fehlschlägt?

Wie behebe ich Nichtübereinstimmungen zwischen MySQL- und Java-Zeitzonen, wenn „useTimezone=true' fehlschlägt?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 20:33:12620Durchsuche

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

Anpassen der MySQL-Zeitzone in Datenbankverbindungen mit Java

Problembeschreibung:

MySQL läuft in der Zeitzone „GMT 8“, während Tomcat „GMT“ verwendet. Diese Diskrepanz führt zu Inkonsistenzen beim Speichern und Abrufen von Datum und Uhrzeit bei der Interaktion mit der Datenbank über Java. Trotz der Einstellung „useTimezone=true“ und „serverTimezone=GMT“ in der Verbindungs-URL besteht das Problem weiterhin.

Lösung:

Um die Zeitzoneninkongruenz zu beheben, gehen Sie wie folgt vor Vorgehensweise wird empfohlen:

  1. Legacy Date Time deaktivieren Code:

    Aktualisieren Sie die Verbindungs-URL so, dass sie „useLegacyDatetimeCode=false“ enthält. Dadurch wird eine neuere und genauere Methode zum Verwalten von Zeitstempeln in MySQL aktiviert.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false";
  2. Nullkalender für Zeitstempel verwenden:

    Bei der Einstellung Stellen Sie beim Erstellen von Zeitstempeln mit der Methode setTimestamp sicher, dass kein Calendar-Objekt als dritter Parameter bereitgestellt wird. Mit diesem Schritt kann das Datumsobjekt entsprechend der Zeitzone der Datenbank formatiert werden.

    getTimestamp(int, Timestamp)
  3. Server-Zeitzone angeben (optional):

    Wenn MySQL bei der Bestimmung der Serverzeitzone auf Unklarheiten stößt, kann es erforderlich sein, diese explizit in der Verbindung anzugeben URL.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";

Durch die Implementierung dieser Maßnahmen kann die Zeitzoneninkongruenz zwischen MySQL und Java beseitigt werden, wodurch eine korrekte Datums-/Uhrzeitspeicherung und -abfrage in der Datenbank sichergestellt wird.

Das obige ist der detaillierte Inhalt vonWie behebe ich Nichtübereinstimmungen zwischen MySQL- und Java-Zeitzonen, wenn „useTimezone=true' fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn