写代码Java写一个正则表达式,匹配日期,日期格式为 YYYY-MM-DD,把闰年也考虑进去,并确保日期是有效的(例如,不能是 2024-11-20以后)。
时间: 2024-12-19 20:24:19 浏览: 8
在Java中,你可以使用`java.util.regex`包下的正则表达式来匹配日期。这里是一个例子,创建了一个正则表达式模式,用于验证"YYYY-MM-DD"格式的日期,同时考虑到闰年的规则:
```java
import java.util.regex.Pattern;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class Main {
private static final String DATE_PATTERN = "^\\d{4}-\\d{2}-\\d{2}$";
private static final Pattern pattern = Pattern.compile(DATE_PATTERN);
public static void main(String[] args) {
String inputDate = "2024-02-29"; // 测试日期
try {
if (pattern.matcher(inputDate).matches()) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false); // 确保严格解析日期
Date date = sdf.parse(inputDate);
System.out.println("Valid date: " + inputDate);
} else {
System.out.println("Invalid date format or future date: " + inputDate);
}
} catch (ParseException e) {
System.out.println("Invalid date: " + inputDate + ", parse error: " + e.getMessage());
}
}
// 正则表达式的校验部分
public static boolean isValidDate(String dateStr) {
return pattern.matcher(dateStr).matches();
}
}
阅读全文