Questo è chiaramente un bug come la documentazione della classe java.sql.Date
afferma
Per conformarsi alla definizione di SQL DATE, i valori dei millisecondi racchiusi da un'istanza java.sql.Date devono essere "normalizzati" impostando le ore, i minuti, i secondi e i millisecondi a zero nel particolare fuso orario a cui è associata l'istanza .