利用正则表达式判断日期的合法性java
时间: 2023-04-20 15:03:47 浏览: 71
可以使用正则表达式来判断日期的合法性。以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DateValidator {
private static final String DATE_PATTERN =
"^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[1,3-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$";
public static boolean isValid(String date) {
Pattern pattern = Pattern.compile(DATE_PATTERN);
Matcher matcher = pattern.matcher(date);
return matcher.matches();
}
}
```
这个代码中,我们定义了一个常量 `DATE_PATTERN`,它是一个正则表达式,用来匹配日期格式。然后我们定义了一个静态方法 `isValid`,它接受一个字符串参数 `date`,并返回一个布尔值,表示这个日期是否合法。在这个方法中,我们使用 `Pattern` 和 `Matcher` 类来进行正则表达式匹配。如果匹配成功,就返回 `true`,否则返回 `false`。
这个正则表达式可以匹配以下日期格式:
- dd/MM/yyyy
- dd-MM-yyyy
- dd.yyyy.MM
- dd/MM/yy
- dd-MM-yy
- dd.yy.MM
- 29/02/yyyy(闰年的 2 月 29 日)
- 29/02/yy(闰年的 2 月 29 日)
如果你需要匹配其他日期格式,可以修改这个正则表达式。