Java正则判断日期格式是否正确的方法示例
本文实例讲述了Java正则判断日期格式是否正确的方法。分享给大家供大家参考,具体如下:
1、Java中用正则表达式判断日期格式是否正确
DateType.java:
/**
*@Title:DateType.java
*@Package:com.you.dao
*@Description:
*@Author:游海东
*@VersionV1.2.3
*/
packagecom.you.dao;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*@类名:DateType
*@描述:
*@Author:游海东
*/
publicclassDateType
{
/**
*
*@类名:DateSelect
*@描述:
*@Author:游海东
*/
publicstaticclassDateSelect
{
publicbooleanisDate(Stringdate)
{
/**
*判断日期格式和范围
*/
Stringrexp="^((\\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]))))))";
Patternpat=Pattern.compile(rexp);
Matchermat=pat.matcher(date);
booleandateType=mat.matches();
returndateType;
}
}
/**
*@Title:main
*@Type:DateType
*@Description:
*@paramargs
*/
publicstaticvoidmain(String[]args)
{
/**
*日期格式正确
*/
Stringdate1="2014-01-03";
/**
*日期范围不正确---平年二月没有29号
*/
Stringdate2="2014-02-29";
/**
*日期月份范围不正确---月份没有13月
*/
Stringdate3="2014-13-03";
/**
*日期范围不正确---六月没有31号
*/
Stringdate4="2014-06-31";
/**
*日期范围不正确----1月超过31天
*/
Stringdate5="2014-01-32";
/**
*这个测试年份
*/
Stringdate6="0014-01-03";
DateSelectdate=newDateSelect();
/**
*打印正确日期格式
*/
System.out.println(date.isDate(date1));
/**
*打印date1
*/
System.out.println(date.isDate(date2));
/**
*打印date3
*/
System.out.println(date.isDate(date3));
/**
*打印date4
*/
System.out.println(date.isDate(date4));
/**
*打印date5
*/
System.out.println(date.isDate(date5));
/**
*打印date6
*/
System.out.println(date.isDate(date6));
}
}
2、运行结果
true false false false false true
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家java程序设计有所帮助。