2017-03-21 75 views
0

我有错误检查日期是否有效。错误检查 - Java

我试过下面的代码,但我仍然收到错误。

if (sales == null || sales != "mm/dd/yyyy" { 
    errors.add("phone", new ActionMessage("error.sales.required")); 
} 
+1

你缺少一个右括号')'“MM/DD/YYYY” – shash678

+0

什么是错误消息后,似乎你缺少日期比较后一个右括号。 – Juniar

回答

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}") 
0

你也可以使用这个函数来解析以所需格式以字符串格式给出的日期。如果能够解析或返回false,则返回true。将您的代码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; 
     } 
    }