本文实例讲述了Java正则判断日期格式是否正确的方法。分享给大家供大家参考,具体如下:
1、Java中用正则表达式判断日期格式是否正确
DateType.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/**
* @Title:DateType.java
* @Package:com.you.dao
* @Description:
* @Author: 游海东
* @Version V1.2.3
*/
package com.you.dao;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @类名:DateType
* @描述:
* @Author:游海东
*/
public class DateType
{
/**
*
* @类名:DateSelect
* @描述:
* @Author:游海东
*/
public static class DateSelect
{
public boolean isDate(String date)
{
/**
* 判断日期格式和范围
*/
String rexp = "^((\\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]))))))" ;
Pattern pat = Pattern.compile(rexp);
Matcher mat = pat.matcher(date);
boolean dateType = mat.matches();
return dateType;
}
}
/**
* @Title : main
* @Type : DateType
* @Description :
* @param args
*/
public static void main(String[] args)
{
/**
* 日期格式正确
*/
String date1 = "2014-01-03" ;
/**
* 日期范围不正确---平年二月没有29号
*/
String date2 = "2014-02-29" ;
/**
* 日期月份范围不正确---月份没有13月
*/
String date3 = "2014-13-03" ;
/**
* 日期范围不正确---六月没有31号
*/
String date4 = "2014-06-31" ;
/**
* 日期范围不正确 ----1月超过31天
*/
String date5 = "2014-01-32" ;
/**
* 这个测试年份
*/
String date6 = "0014-01-03" ;
DateSelect date = new DateSelect();
/**
* 打印正确日期格式
*/
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、运行结果
1
2
3
4
5
6
|
true
false
false
false
false
true
|
希望本文所述对大家java程序设计有所帮助。