Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre le problème de différence de fuseau horaire lors de l'interrogation de la base de données Springboot

PHPz
Libérer: 2023-06-04 17:37:03
avant
1526 Les gens l'ont consulté

    La différence de fuseau horaire qui se produit lors de l'interrogation de la base de données Springboot

    Dans un projet récent, plusieurs sources de données ont été utilisées pour migrer les données de la bibliothèque MySQL vers la bibliothèque mongo. -heure de différence entre les données récupérées et les données originales.

    Enfin, le problème a été résolu après que la belle-mère l'ait enregistré :

    J'ai vu deux méthodes plus pratiques sur Internet à cause du springboot utilisé. , celle que j'ai utilisée ici consiste à modifier le fichier de configuration application.yml. De plus, d'autres méthodes peuvent être trouvées en ligne,

    1 Dans la configuration de la connexion à la base de données, on ajoute un élément

    &serverTimezone=GMT%2b8
    Copier après la connexion
     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: ********
    Copier après la connexion

    Le format original devrait. soyez comme ceci :

    &serverTimezone=GMT+8 这里使用%2b替换 + 号
    Copier après la connexion

    2. Ajoutez la configuration de Jackson directement au fichier de configuration de démarrage

    #在application.yml中增加配置
    spring:
        jackson:
            time-zone: GMT+8
    Copier après la connexion

    comme ceci Vous pouvez modifier l'heure avec succès Il existe d'autres méthodes. Vous pouvez la vérifier

    springboot new Date() Le fuseau horaire. la différence est de 8 heures

    1 Dans l'environnement k8s, comparez l'heure dans le code. La différence est de 8 heures sous la nouvelle date()

    Vérifiez que le fuseau horaire de l'hôte est le fuseau horaire cst

    Utilisez le code Java pour écrire le fuseau horaire du contrôleur et trouvez qu'il est GMT

    Le code est le suivant :

    Calendar calendar = Calendar.getInstance();      
            System.out.println("目前时间:" + calendar.getTime());
            System.out.println("Calendar时区::" + calendar.getTimeZone().getID());
            System.out.println("user.timezone:" + System.getProperty("user.timezone"));
            System.out.println("user.country:" + System.getProperty("user.country"));
            System.out.println("默认时区:" + TimeZone.getDefault().getID());
    Copier après la connexion

    Le fuseau horaire de sortie est GMT qui est différent de celui de l'hôte. Si vous ne parvenez pas à comprendre le fonctionnement et la maintenance, faites-le vous-même

    Il semble que le fuseau horaire soit le problème -

    1 Ajoutez le paramètre serverTimezone. =Asie/Shanghai au lien de base de données db

    2 Ajoutez le script de démarrage Springboot -Duser.timezone=GMT+08

    3 configuration globale de Jackson

    spring.jackson.date-format: yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone: GMT+8
    Copier après la connexion

    4.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal