我在检查日期是否有效时遇到问题。
我已尝试过以下代码,但我仍然收到错误。
if (sales == null || sales != "mm/dd/yyyy" {
errors.add("phone", new ActionMessage("error.sales.required"));
}
答案 0 :(得分:0)
我只是这样写,但您可以自定义正则表达式以匹配正确的日期。以下是日期格式,如12/30/2004。月份和日期将需要任意两个数字。您可能需要更进一步进行自定义,以便它不会将输入值设置为大于31天,或者值将超过12个月值。
String sales = "12/12/2004";
if (sales == null || !sales.matches("\\d{2}\\/{1}\\d{2}\\/{1}\\d{4}")){
System.out.println("Sale is null or date format doesn't match");
}
如果下面有这个,你可以有一个月份值和一个数字作为日期值,正则表达式仍然会传递输入值。
!sales.matches("\\d{1,2}\\/{1}\\d{1,2}\\/{1}\\d{4}")
答案 1 :(得分:0)
你也可以使用这个函数来解析以字符串格式给出的日期和所需的格式。如果能够解析则返回true,否则返回false。将代码sales != "mm/dd/yyyy"
替换为isValidDateFormat(sales, "MM/dd/yyyy")
。
public static boolean isValidDateFormat(final String data, final String dateFormat){
try{
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
formatter.format(date);
return true;
}
catch(final ParseException ex){
return false;
}
}