Isso é claramente um bug, pois a documentação da classe
java.sql.Date
estados
Para estar em conformidade com a definição de SQL DATE, os valores de milissegundos agrupados por uma instância java.sql.Date devem ser 'normalizados' definindo as horas, minutos, segundos e milissegundos como zero no fuso horário específico ao qual a instância está associada .