【发布时间】:2011-12-19 13:31:34
【问题描述】:
当用户以错误的格式输入日期时,我收到空指针异常。
字符串转日期的方法
Date stringToDate(String dateString) {
Date returnDate = null;
if (dateString!= null && dateString.length() > 0 && isValidDate(dateString)) {
returnDate = dateFormat.parse(dateStr);
}
return returnDate;
}
和
boolean isValidDate(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Pattern datePattern = Pattern.compile("[0-9]{2}/[0-9]{2}/[0-9]{4}");
Matcher datePatternMatch = datePattern.matcher(date);
boolean datePatternMatchfound = datePatternMatch.matches();
if(date==null){
return false;
} else if(date!=null && date.length()>0){
if(datePatternMatchfound){
sdf.setLenient(false);
sdf.parse(date.trim());
}
return true;
} else {
return false;
}
}
我只是想知道......
1) 日期的有效模式应该是什么?
2) 如果用户输入错误的日期 stringToDate 方法肯定会失败并抛出空指针异常。如何避免?
任何帮助将不胜感激。
【问题讨论】:
-
根据您使用 JSF 的问题历史记录。如果您确实将它用于 JSF 输入字段,那么您完全错误地处理了这个问题。
标签: java regex validation date-format