private boolean isValidDateString(String value){ // value = "01.02.22"
if(value != null){
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
try{
Date parse = sdf.parse((String) value);
}catch (Exception e){
LOG.debug("Invalid date string : "+value);
return false;
}
}
return true;
}
这里它返回值"01.01.22"
的true
。我必须显示错误消息,如";格式应该是"dd.MM.yyyy";,所以我需要为这样的字符串返回CCD_ 3的方法。我该如何获得?
这是您的方法,已更改为使用最新的java.time.format
包。这将拒绝";01.01.22";,正如你所希望的那样,因为它需要4位数的年份。
所有新代码应使用java.time.*
,并停止使用Date
、Calendar
和SimpleDateFormat
。
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
private final var formatDDMMYYYY = DateTimeFormatter.ofPattern("dd.MM.yyyy");
private boolean isValidDateString(String value){ // value = "01.02.22" or null
if (value != null) {
try {
formatDDMMYYYY.parse(value);
} catch (DateTimeParseException e) {
LOG.debug("Invalid date string", e);
return false;
}
}
return true;
}