Désolé, je n'ai pas la réponse à votre question directe. Cependant, je peux suggérer quelque chose qui mérite d'être considéré et qui évitera entièrement tous les problèmes de fuseau horaire dans la base de données. Si possible, je recommande simplement d'utiliser BIGINT
champs pour stocker des dates avec Java. Vous stockez simplement le long
du nombre de millisecondes depuis l'époque, par ex. de System.currentTimeMillis()
ou Date.getTime()
.
Ensuite, l'interprétation du fuseau horaire pour une date est toujours gérée en Java, qui utilise bien le nombre basé sur l'époque. Il est un peu plus compliqué d'interroger directement la base de données pour une date en dehors de Java, mais ce n'est pas trop difficile et cela en vaut la peine IMO :
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;