我正在使用MM-dd-yyyy HH:mm:ss
格式从用户输入中解析日期字符串,我发现12-20-2012 10:10:10 abcdexxxx
也可以被删除。怎么会这样这是我的代码:
SimpleDateFormat df = new SimpleDateFormat( "MM-dd-yyyy HH:mm:ss" );
String currColValue = "12-20-2012 10:10:10 abcdexxxx";
try{
d=df.parse( currColValue );
}catch( ParseException e ){
System.out.println("Error parsing date: "+e.getMessage());
}
但也不例外,将String值解析为Date。为什么?
最佳答案
根据the Javadoc of the parse
method:
从给定字符串的开头解析文本以产生日期。该方法可能不会使用给定字符串的整个文本。
(重点是我的)。
与上述注释的含义相反,这与宽大的解析无关。而是,此方法并非旨在消耗整个字符串。如果您想验证它是否占用了整个字符串,我想您可以设置一个ParsePosition
对象和use the two-arg overload,然后再检查ParsePosition
看看它是否解析到字符串的末尾。