parse メソッドは、入力文字列全体との一致を試みません。つまり、プレフィックスが01-01-2010
一致し、それで十分です。
からDateFormat.parse
:
指定された文字列の先頭からテキストを解析して日付を生成します。メソッドは、指定された文字列のテキスト全体を使用しない場合があります。
それが「完全一致」であったかどうかを確認する必要がある場合は、次のことを試すことができます。
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String strDate = "01-01-2010mwwwwwwwwwwwwwww";
ParsePosition pp = new ParsePosition(0);
Date date = df.parse(strDate, pp);
System.out.println("Complete match: " + (pp.getIndex() == strDate.length()));
strDate = "01-01-2010";
pp = new ParsePosition(0);
date = df.parse(strDate, pp);
System.out.println("Complete match: " + (pp.getIndex() == strDate.length()));
これは印刷します
Complete match: false
Complete match: true