52 votes

Comment changer le fuseau horaire MySQL dans une connexion à une base de données en utilisant Java ?

MySQL fonctionne avec le fuseau horaire "GMT+8", mais Tomcat avec "GMT". Lorsque j'enregistre datetime dans ma base de données, tout semble aller bien, mais lorsque je vérifie la valeur datetime dans la base de données, je vois la valeur "GMT".

De plus, lorsque j'essaie d'obtenir la valeur de la base de données, la valeur est modifiée, il semble que la valeur dans la base de données soit prise comme "GMT + 8", donc Java change la valeur en "GMT".

J'ai défini l'URL de connexion comme ceci :

 useTimezone=true&serverTimezone=GMT

mais ça ne marche pas.

13voto

Jay Points 308

JDBC utilise une "URL de connexion", vous pouvez donc échapper "+" par "%2B", c'est-à-dire

 useTimezone=true&serverTimezone=GMT%2B8

1voto

mtjmohr Points 99

Pour les applications telles que Squirrel SQL Client ( http://squirrel-sql.sourceforge.net/ ) version 4, vous pouvez définir "serverTimezone" sous "driver properties" sur GMT+1 (exemple de fuseau horaire "Europe/Vienne ).

0voto

Arindam Points 75

Existe-t-il un moyen d'obtenir la liste des fuseaux horaires pris en charge à partir de MySQL ? ex - serverTimezone=Amérique/New_York. Cela peut résoudre beaucoup de ces problèmes. Je crois que chaque fois que vous devez spécifier le fuseau horaire correct à partir de l'application, quel que soit le DB TimeZone.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X