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 :
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";
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)
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";
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!