Java中用正则表达式判断日期格式是否正确
1、Java中用正则表达式判断日期格式是否正确
DateType.java:
/**
* @Title:DateType.java
* @Package:com.you.dao
* @Description:
* @Author: 游海东
* @date: 2014年3月8日 下午10:54:50
* @Version V1.2.3
*/
package com.you.dao;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @类名:DateType
* @描述:
* @Author:游海东
* @date: 2014年3月8日 下午10:54:50
*/
public class DateType
{
/**
*
* @类名:DateSelect
* @描述:
* @Author:游海东
* @date: 2014年3月8日 下午11:09:37
*/
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
* @date : 2014年3月8日 下午10:54:50
* @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、运行结果
true false false false false true
Java中用正则表达式判断日期格式是否正确的更多相关文章
- 利用JavaScript与正则表达式判断输入账号格式是否正确
在学习了HTML DOM对象后,做几个小练习来巩固一下所学内容. 正则表达式: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE ...
- 在Java中用正则表达式判断一个字符串是否是数字的方法
package chengyujia; import java.util.regex.Pattern; public class NumberUtil { /** * 判断一个字符串是否是数字. * ...
- java中用正则表达式判断中文字符串中是否含有英文或者数字
public static boolean includingNUM(String str)throws Exception{ Pattern p = Pattern.compile(" ...
- JAVA中判断年月日格式是否正确(支持判断闰年的2月份)
一.先说一下年月日(yyyy-MM-dd)正则表达式: 1.年月日正则表达式:^((19|20)[0-9]{2})-((0?2-((0?[1-9])|([1-2][0-9])))|(0?(1|3|5| ...
- 关于Java中文乱码与日期格式
关于Java中文乱码与日期格式 Java中文乱码的问题其实很普遍了,首先,一般不会在Windows平台下面出现,同时,一般在Tomcat应用服务器下也都正常,但是到了WebSphere,Weblogi ...
- JS判断上传图片格式是否正确
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Linux C判断日期格式是否合法
Title:Linux C判断日期格式是否合法 --2013-10-11 11:54 #include <string.h> // strlen() , strncpy() #includ ...
- php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)
/** * 表单校验函数库 */ /** * 判断email格式是否正确 * @param $email */ function is_email($email) { return strlen($e ...
- Java中用正则表达式找出数字
Java中用正则表达式找出数字 1.题目 String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488 ...
随机推荐
- MySQL数据库中实现对中文字段按照首字字母排序
转载自网络! 1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决, ...
- mysql安装(CentOS 7.1 (64-bit system) MySQL 5.6.24)
环境:CentOS 7.1 (64-bit system) MySQL 5.6.24yum install libaio //安装依赖的包wget http://dev.mysql.com/get/m ...
- javase学习小结一
输出格式: int num=12345; System.out.printf("%7d",number);输出结果为:空格空格12345 System.out.println(&q ...
- 常系数齐次线性递推 & 拉格朗日插值
常系数齐次线性递推 具体记在笔记本上了,以后可能补照片,这里稍微写一下,主要贴代码. 概述 形式: \[ h_n = a_1 h_{n-1}+a_2h_{n-2}+...+a_kh_{n-k} \] ...
- BZOJ 2738: 矩阵乘法 [整体二分]
给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 愚蠢的名字...... 整体二分,影响因子就是矩阵里的数 把$\le mid$的矩阵元素加到二维树状数组里然后询问分成两组就行 ...
- BZOJ 2754: [SCOI2012]喵星球上的点名 [AC自动机+map+暴力]
2754: [SCOI2012]喵星球上的点名 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1902 Solved: 837[Submit][St ...
- ThreadLocal 简述
ThreadLocal的理解 Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量.因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们 ...
- Properties工具类
/** * 加载Properties文件 * @param path Properties文件路径 * @return */ private static Properties getClasspat ...
- Socket网络通信之数据传递
Socket通信的步骤: 1.创建ServerSocket和Socket 2.打开连接到Socket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关闭输入输出流.关闭Socket 服务 ...
- CentOS6.9安装mysql5.7
1.查看系统版本 uname -a 2.卸载old mysql rpm -qa|grep -i mysql rpm -ev MySQL-client-5.5.25a-1.rhel5 如果提示依赖错误, ...