这是一个众所周知的问题,已经出现在 stackoverflow 上。我被要求解决 Web 应用程序中的错误。我有一个来自网络表单的日期,用户应该以给定格式输入有效日期dd/MM/yyyy
。
该应用程序使用 Struts 1.3 作为框架,这是我在相应 FormBean 的 validate 方法中发现的。
DateFormat dateFormat = new SimpleDateFormat( "dd/MM/yyyy", aLocale );
try{
mydate = dateFormat.parse( formDate );
}
catch( ParseException pe ){
errors.add( "error", new ActionError( "error.date.invalid" ) );
}
01/10/12
但是,例如当用户以短格式输入年份时,例如,将转换为日期,查看我找到的数据库时,不会引发错误01/10/0012
。
作为一个快速修复我尝试使用setLenient(false)
,但仍然没有引发异常,并且 mydate 仍然导致有效但错误的日期。
在搞乱正则表达式和字符串预解析之前,我想知道我是否遗漏了什么。特别是在日期格式实例化中使用语言环境时。
项目中使用的当前 Jdk 是 1.5