我需要确保用户以以下格式输入日期:mm / dd / yyy
我尝试使用一种简单的方法来验证给定的参数是否不为null或为空,以检查其是否与所需的格式匹配,如果是,则将其设置为新日期。
public void setDate(String dateIn) {
if ((dateIn != null) && !(dateIn.equals(""))) {
if (dateIn.equals("%2d" + "/" + "%2d" + "/" + "%4d")) {
validDate = dateIn;
}
}
}
问题出在我的第二个if语句中,我只需要弄清楚如何使该方法采用日,月和年的数字。
最佳答案
只需尝试解析日期即可。我正在使用Java 8中引入的“新” java.time
api。此api已在JDK中经过全面测试,是一种改进的方式(通常尝试自己做最少的工作,很有可能您会重新遇到之前遇到的问题):
try {
DateTimeFormatter.ofPattern("MM/dd/yyyy").parse(dateIn);
// valid date
} catch(DateTimeParseException e) {
// invalid date
}