Timestamp 変数と Date 変数があり、等しいかどうかを比較したい (もちろん日付部分のみ)。コンストラクター Date(long) が時間の部分を節約することは私にとって驚きだったので、このコードは正しく動作しません:
date = resultSet.getDate(1);
timestamp = resultSet.getTimestamp(2);
//...
if (date.equals(new Date (timestamp.getTime())) ...
次のようなコードでこれを解決します。
DateFormat dateFormat = new SimpleDateFormat ("yyyyMMdd");
if (date.equals(dateFormat.parse(dateFormat.format(timestamp)))) ...
または、SQLクエリでタイムスタンプを日付に変換できますが、タイムスタンプ表現も必要です。タイムスタンプから時間の部分を切り取るより良い方法はありますか?