判断日期格式是否是 yyyy-MM-dd 并且2021-01-1 或2021-1-1 这种格式是不正确的
作者:互联网
public class ISDateFormat {
public static boolean isValidDate(String strDate) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2018-02-29会被接受,并转换成2018-03-01
format.setLenient(false);
Date date = format.parse(strDate);
//判断传入的yyyy年-MM月-dd日 字符串是否为数字
String[] sArray = strDate.split("-");
char[] yearChars = sArray[0].toCharArray();//年
char[] monChars = sArray[1].toCharArray();//月
char[] dayChars = sArray[2].toCharArray();//日
//判断格式
if (monChars.length == 2 && dayChars.length == 2 && yearChars.length == 4) {
for (String s : sArray) {
boolean isNum = s.matches("[0-9]+");
//+表示1个或多个(如"3"或"225"),*表示0个或多个([0-9]*)(如""或"1"或"22"),?表示0个或1个([0-9]?)(如""或"7")
if (!isNum) {
return false;
}
}
} else {
return false;
}
} catch (Exception e) {
// e.printStackTrace();
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
return false;
}
return true;
}
}
标签:sArray,char,return,MM,yyyy,length,2021,格式,false 来源: https://blog.csdn.net/wyzyysw/article/details/114322981