文字列からDate型の変換、比較2

例えば、"2006/8/23"といった文字列からDate型の比較変換については文字列からDate型の変換、比較 のとおりなのだが、指定した日と当日かどうかを判断する場合、以下のようにするとNG。

String date1 = "2006/8/23";
Date today = new Date();    //今日の日付(2006/8/23に実施)
SimpleDateFormat sdFormat= new SimpleDateFormat("yyyy/MM/dd");
String checkDate = sdFormat.parse(today);

int hantei = today.compareTo(checkDate);

これだと hantei = 1となってしまう。

何故か。
todayは確かに2006/8/23なのだか実際はWed Aug 23 12:02:00 JST 2006(処理が行われた時間)。である。これに対してdate1はWed Aug 23 00:00:00 JST 2006。

これが原因でした。なのでちょと面倒だけど以下todayのように修正

Date today = new Date();
SimpleDateFormat sdFormat= new SimpleDateFormat("yyyy/MM/dd");
String tmpDate = sdFormat.format(today);
today = sdFormat.parse(tmpDate);

これだとWed Aug 23 00:00:00 JST 2006となり同日の判定が可能である。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.