在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號這一天。