Hola kl..
java.util.date es la representación en Java de la fecha y la hora. Úsalo si quieres trabajar con fechas o horas en tu programa de Java (sumar, restar, etc.).
java.sql.date se utiliza únicamente si deseas comunicarte con una base de datos SQL como MySQL, MSSQL, PostGreSQL, etc. No lo uses para las cosas mencionadas anteriormente.
Si lo estabas utilizando para asuntos de SQL, supongo que ya lo sabrías, por lo que quizás java.util.date sea el correcto para ti.
Creo que java.util.Date incluye la hora (HH:MM:SS); java.sql.Date no lo hace.
java.sql.Timestamp te permite mantener marcas de tiempo de la base de datos hasta el milisegundo. - MOD
Urs GS