Heim >Datenbank >MySQL-Tutorial >Wie behebe ich Nichtübereinstimmungen zwischen MySQL- und Java-Zeitzonen, wenn „useTimezone=true' fehlschlägt?
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:
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";
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)
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!