public static boolean checkDate(String date) {
String eL = "^((//d{2}(([02468][048])|([13579][26]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|([1-2][0-9])))))|(//d{2}(([02468][1235679])|([13579][01345789]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(//s(((0?[0-9])|([1][0-9])|([2][0-3]))//:([0-5]?[0-9])((//s)|(//:([0-5]?[0-9])))))?$";
Pattern p = Pattern.compile(eL);
Matcher m = p.matcher(date);
boolean b = m.matches();
if (b) {
System.out.println("格式正确");
} else {
System.out.println("格式错误");
}
return b;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
checkDate("2009-01-01 12:13:12");
checkDate("2009-1-1 12:13:12");
checkDate("2009/01/01 12:13:12");
checkDate("2009/1/1 12:13:12");
checkDate("2009-01-01");
checkDate("2009/01/01");
checkDate("2009/13/01");
checkDate("2009/01/01 24:59:59");
}
result:
格式正确
格式正确
格式正确
格式正确
格式正确
格式正确
格式错误
格式错误
这篇文章详细介绍了如何使用Java编写一个静态方法来检查日期字符串是否符合特定的正则表达式,展示了如何处理不同格式的日期输入,如'YYYY-MM-DD HH:mm:ss'。通过实例展示了结果,包括格式正确的和错误的日期。

被折叠的 条评论
为什么被折叠?



