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程序设计有所帮助。