Heim >Datenbank >MySQL-Tutorial >Ausführliche Erklärung, wie man die Falle der URL-Zeitzone in MySQL vermeidet
Wenn Sie JAR-Dateien von MySQL 6.0.x oder höher verwenden, müssen Sie neuerdings serverTimezone im Link der Code-URL angeben. Bei dieser Frage geht es um die URL-Zeitzone in MySQL. Wenn Sie diese Falle nicht beachten, erfahren Sie in diesem Artikel hauptsächlich, wie Sie die URL-Zeitzone-Falle in MySQL vermeiden können.
1. ServerTimezone ist nicht angegeben
Ausnahme beim Konfigurieren der URL in XML
<property name="url" value="jdbc:mysql://localhost:3306/mybatisstudy"/>
Caused by: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
Sie müssen Konfigurieren Sie den Server oder JDBC-Treiber (über die Konfigurationseigenschaft serverTimezone). Wenn Sie die Zeitzonenunterstützung verwenden möchten, müssen Sie einen detaillierteren Zeitzonenwert verwenden.
2. Online-Lösungen
Parameter nach der URL hinzufügen?serverTimezone=utc
<property name="url" value="jdbc:mysql://localhost:3306/springdatastudy?serverTimezone=UTC"/>
Aufgetretene Probleme
Obwohl das Programm mit der oben hinzugefügten Zeitzone fehlerfrei funktionierte, gab es ein Problem, als wir Java-Code verwendeten, um die Zeit in die Datenbank einzufügen.
Zum Beispiel ist die in den Java-Code eingefügte Zeit: 21.08.2017 17:29:56
Aber die in der Datenbank angezeigte Zeit ist: 2017-08- 21 09:29:56
3. Die Grundursache liegt
im Problem mit der Zeitzoneneinstellung.
UTC stellt die globale Standardzeit dar, aber die von uns verwendete Zeit ist die Pekinger Zeitzone, also der östliche Achte Bezirk, acht Stunden vor UTC.
UTC + (+0800) = Ortszeit (Peking)
4. Die Zeitzone von
URL verwendet die chinesische Standardzeit. Auch serverTimezone=Asia/Shanghai
4.1 Verwenden Sie Java-Code, um die lokale Zeitzonen-ID zu erhalten
Calendar cal = Calendar.getInstance(); TimeZone timeZone = cal.getTimeZone(); System.out.println(timeZone.getID()); System.out.println(timeZone.getDisplayName());
Asia/Shanghai 中国标准时间
Verwandte Empfehlungen:
Beispiele für die Verwendung von or-Anweisungen in MySQL
Detaillierte Erläuterung von Indizes und Triggern in MySQL
Zusammenfassung der Datumsfunktionen in MySQL
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man die Falle der URL-Zeitzone in MySQL vermeidet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!