在Java中,可以使用SimpleDateFormat类来判断日期是否合法,具体实现如下:
public boolean isValidDate(String dateStr, String formatStr) {
boolean isValid = true;
SimpleDateFormat dateFormat = new SimpleDateFormat(formatStr);
dateFormat.setLenient(false);
try {
dateFormat.parse(dateStr.trim());
} catch (ParseException e) {
isValid = false;
}
return isValid;
}
其中,dateStr表示日期字符串,formatStr表示日期格式,例如"yyyy-MM-dd"、"yyyyMMdd"等等。在方法中,首先创建一个SimpleDateFormat对象,并设置其Lenient属性为false,表示严格按照日期格式进行解析。然后将日期字符串按照指定格式进行解析,如果解析失败则说明日期不合法,返回false,否则说明日期合法,返回true。
使用时,可以调用isValidDate方法并传入日期字符串和日期格式,例如:
String dateStr = "2022-02-30";
String formatStr = "yyyy-MM-dd";
boolean isValid = isValidDate(dateStr, formatStr);
if (isValid) {
System.out.println("日期合法");
} else {
System.out.println("日期不合法");
}
上述代码将输出"日期不合法",因为2022年2月并没有30号这一天。