Il s'agit clairement d'un bug comme la documentation de la classe java.sql.Date
états
Pour se conformer à la définition de SQL DATE, les valeurs en millisecondes enveloppées par une instance java.sql.Date doivent être "normalisées" en définissant les heures, les minutes, les secondes et les millisecondes sur zéro dans le fuseau horaire particulier auquel l'instance est associée .