Heim >Java >javaLernprogramm >So lösen Sie das Problem der Zeitzonendifferenz beim Abfragen der Springboot-Datenbank

So lösen Sie das Problem der Zeitzonendifferenz beim Abfragen der Springboot-Datenbank

PHPz
PHPznach vorne
2023-06-04 17:37:031548Durchsuche

    Der Zeitzonenunterschied, der beim Abfragen der Springboot-Datenbank auftritt

    In einem aktuellen Projekt wurden mehrere Datenquellen verwendet, um die Daten von der MySQL-Bibliothek in die Mongo-Bibliothek zu migrieren. Es wurde festgestellt, dass es eine 8 geben würde -Stundenunterschied zwischen den abgerufenen Daten und den Originaldaten,

    Nachdem die Schwiegermutter das Problem gelöst hat, habe ich zwei weitere praktische Methoden im Internet gesehen Die hier verwendete Methode besteht darin, die Konfigurationsdatei application.yml zu ändern. Weitere Methoden finden Sie online.

    1 In der Konfiguration der Verbindung zur Datenbank fügen wir ein Element hinzu:

    &serverTimezone=GMT%2b8
     primary:
          jdbc-url: jdbc:mysql://******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8
          username: ****
          password: *****
        secondary:
          jdbc-url: jdbc:mysql://*******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8
          username: *****
          password: ********

    Das ursprüngliche Format Seien Sie so:

    &serverTimezone=GMT+8 这里使用%2b替换 + 号

    2. Fügen Sie die Jackson-Konfiguration direkt zur Boot-Konfigurationsdatei hinzu.

    #在application.yml中增加配置
    spring:
        jackson:
            time-zone: GMT+8

    Sie können die Uhrzeit erfolgreich ändern. Sie können es überprüfen Der Unterschied beträgt 8 Stunden

    1 Vergleichen Sie in der k8s-Umgebung die Zeit im Code. Unter new Date() beträgt der Unterschied 8 Stunden.

    Überprüfen Sie, ob die Host-Zeitzone die CST-Zeitzone ist Die Ausgabezeitzone ist GMT, was sich von der des Hosts unterscheidet. Wenn Sie den Betrieb und die Wartung nicht herausfinden können, ist die Zeitzone anscheinend das Problem. Fügen Sie den Parameter serverTimezone hinzu =Asien/Shanghai zur Datenbank-Link-Datenbank

    2. Fügen Sie das Springboot-Startskript-Duser.timezone=GMT+08

    3 hinzu

    Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der Zeitzonendifferenz beim Abfragen der Springboot-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen