The pattern is "dd-MM-yyyy"
I think the string "01-01-2010mwwwwwwwwwwwwwww" does not satisfy the pattern, but the following code shows the contrary.
Anyone can explain why?
public static void main(String[] args) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Date date = df.parse("01-01-2010mwwwwwwwwwwwwwww");
System.out.println(date);
}
Thanks
The parse method does not try to match the entire input string. That is, the prefix 01-01-2010
matches, and that's enough.
From DateFormat.parse
:
Parses text from the beginning of the given string to produce a date. The method may not use the entire text of the given string.
If you need to figure out if it was a "complete match", you could try the following:
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()));
This prints
Complete match: false
Complete match: true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With