Maison > base de données > tutoriel mysql > Comment résoudre les incompatibilités de fuseau horaire MySQL et Java en cas d'échec de « useTimezone=true » ?

Comment résoudre les incompatibilités de fuseau horaire MySQL et Java en cas d'échec de « useTimezone=true » ?

Patricia Arquette
Libérer: 2024-12-01 20:33:12
original
661 Les gens l'ont consulté

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

Ajustement du fuseau horaire MySQL dans les connexions de base de données avec Java

Description du problème :

MySQL fonctionne dans le fuseau horaire "GMT 8", alors que Tomcat utilise "GMT". Cette divergence entraîne des incohérences dans le stockage et la récupération date/heure lors de l'interaction avec la base de données à l'aide de Java. Malgré la définition de "useTimezone=true" et "serverTimezone=GMT" dans l'URL de connexion, le problème persiste.

Solution :

Pour résoudre la discordance de fuseau horaire, procédez comme suit est recommandée :

  1. Désactiver la date et l'heure héritées Code :

    Mettez à jour l'URL de connexion pour inclure "useLegacyDatetimeCode=false". Cela activera une méthode plus récente et plus précise pour gérer les horodatages dans MySQL.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false";
    Copier après la connexion
  2. Utiliser le calendrier nul pour les horodatages :

    Lors de la configuration timestamps à l’aide de la méthode setTimestamp, assurez-vous qu’aucun objet Calendar n’est fourni comme troisième paramètre. Cette étape permettra de formater l'objet date en fonction du fuseau horaire de la base de données.

    getTimestamp(int, Timestamp)
    Copier après la connexion
  3. Spécifier le fuseau horaire du serveur (facultatif) :

    Si MySQL rencontre une ambiguïté dans la détermination du fuseau horaire du serveur, il peut être nécessaire de le spécifier explicitement dans la connexion. URL.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";
    Copier après la connexion

En mettant en œuvre ces mesures, l'inadéquation de fuseau horaire entre MySQL et Java peut être éliminée, garantissant ainsi un stockage et une récupération date-heure corrects dans la base de données.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal