java.util.Date date = new Date(year, month, date);だった。
しかし↑の方法はもう推奨されてないため
Calendar cal = Calendar.getInstance();
cal.set(year, month, date);
java.sql.Date date = new java.sql.Date(cal.getTimeInMillis());
java.util.Date date = new java.util.Date(cal.getTimeInMillis());
これで変換できるはずだったが、
変な期間のデータをselectしたので(月がずれてしまう問題)
いろいろ調べた結果!
Calendarクラスのyearとdateは普通に1から始まるが、
monthは0が1月であることが分かった。
結局
cal.set(year, month - 1, date);
で解決したが、3時間の遅れが発生したのでこれは痛い。
今後2度も同じミスを犯さないようにメモしておく。