SimpleDateFormat方法解析中可能出现的错误

vic*_*107 3 java string date simpledateformat parseexception

我收到一个表示日期的字符串,我需要将此字符串转换为日期,并验证字符串是否为有效日期.

我收到字符串33-12-2013一个解析方法返回日期01-01-2014,代码:

Date fechaVencimientoFormateada;
SimpleDateFormat formateador = new SimpleDateFormat( "dd-MM-yyyy" );
try
{
    fechaVencimientoFormateada = formateador.parse( "33-12-2013" );      
    System.out.println( formateador.format(fechaVencimientoFormateada) );
}
catch ( ParseException e )
{
    System.out.println("ERROR!");
}
Run Code Online (Sandbox Code Playgroud)

输出:2014年1月2日00:00:00 COT 2014

我期待一个ParseException,任何想法?

和其他例子:

字符串日期:365-12-2013输出:Sun Nov 30 00:00:00 COT 2014

字符串日期:1-24-2013输出:2014年12月1日00:00:00 COT 2014

为什么ParseException不抛?

Kay*_*man 10

确保你setLenient(false)SimpleDateFormat.否则它会毫无例外地解析许多无效日期,你不能太信任输出.