我正在使用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看看它是否解析到字符串的末尾。

10-01 01:58
查看更多