//校验日期,判断一个字符串是否可以转换为日期
public static boolean isValidDate(String str) {
boolean convertSuccess = true;
// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
if (str.contains("-")) {
str=str.replace("-", "/");
}
try {
// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
if (str.length()==8) {
str=str.substring(0, 5)+"0"+str.substring(5, 7)+"0"+str.substring(7, 8);
format.setLenient(false);
format.parse(str);
}else if(str.length()==9){
str=str.substring(0, 5)+"0"+str.substring(5, 9);
format.setLenient(false);
format.parse(str);
}else if(str.length()==10){
format.setLenient(false);
format.parse(str);
}else {
format1.setLenient(false);
format1.parse(str);
}
} catch (ParseException e) {
// e.printStackTrace();
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
convertSuccess = false;
}
return convertSuccess;
}
// public static void main(String[] args) {
// System.out.println(isValidDate("1999-1-1"));
// String aString ="1999-1-1";
// System.out.println(aString.length());//8
// System.out.println(aString.substring(0, 5)+"0"+aString.substring(5, 7)+"0"+aString.substring(7, 8));
// System.out.println("1999-01-01".length());//10
// System.out.println("2019-5-29".length());//9
// System.out.println("2019-5".length());//6
// String string ="2019-5-29";
// System.out.println(string.substring(0, 5)+"0"+string.substring(5, 9));//2019-05-29
// }
校验日期,判断一个字符串是否可以转换为日期
最新推荐文章于 2022-01-25 09:31:26 发布