根据格式dd/mm/yyyy验证给定日期.
有效值= 1
无效= -1
示例1:
输入= 12/06/1987
输出= 1 示例2
:
输入= 03/1/1987
输出= -1
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CheckDateFormat {
public static void main(String[] args) {
String s1="29/02/2006";
getvalues(s1);
}
public static void getvalues(String s1) {
if(s1.matches("[0-9]{2}[/][0-9]{2}[/][0-9]{4}"))
{
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
sdf.setLenient(false);
try {
Date d1=sdf.parse(s1);
System.out.println(1);
} catch (ParseException e) {
//e.printStackTrace();//Always going to catch block
System.out.println(-1);
}
}
else
System.out.println(-1);
}
}
Run Code Online (Sandbox Code Playgroud)
代码的问题在于它总是返回-1.
它总是进入catch块并给出ParseException.
正则表达式有问题吗?