我想验证日期输入,我只希望他们通过如果日和月总是两位数。到目前为止,我一直在用的SimpleDateFormat这样做:SimpleDateFormat严格的两位数的日期和月份解析
SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");
df.setLenient(false);
try
{
df.parse("10/1/1987");
df.parse("1/1/1987");
df.parse("1/10/1987");
df.parse("1/1/19");
}
catch (ParseException e)
{
e.printStackTrace();
}
所有这些案件经过,虽然,我不希望任何人通过。
是否有一个简单的方法来解决这个问题,否则我将不得不与像第一令牌化的反斜杠字符串:
String[] dateParts = date.split("/");
if (dateParts.length != 3 && dateParts[0].length() != 2 && dateParts[1].length() != 2 && dateParts[2].length() != 4)
System.out.println("Invalid date format");
2016-12-15
Jimmy P
+2
你可以使用[图案](https://docs.oracle.com/javase/7/docs/ api/java/util/regex/Pattern.html)[Matcher](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html),并匹配相应的常规表达...例如'“\ d {2}/\ d {2}/\ d {4}”'。例如)'if(date.matches(“\\ d {2}/\\ d {2}/\\ d {4}”)){...}' –
+0
您可以使用正则表达式,例如([0 -9] {2})/([0-9] {2})/([0-9] {4}) –
+0
您是否正常工作? –