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中用正则表达式判断日期格式是否正确的更多相关文章

  1. 利用JavaScript与正则表达式判断输入账号格式是否正确

    在学习了HTML DOM对象后,做几个小练习来巩固一下所学内容. 正则表达式: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE ...

  2. 在Java中用正则表达式判断一个字符串是否是数字的方法

    package chengyujia; import java.util.regex.Pattern; public class NumberUtil { /** * 判断一个字符串是否是数字. * ...

  3. java中用正则表达式判断中文字符串中是否含有英文或者数字

    public static boolean includingNUM(String str)throws  Exception{ Pattern p  = Pattern.compile(" ...

  4. JAVA中判断年月日格式是否正确(支持判断闰年的2月份)

    一.先说一下年月日(yyyy-MM-dd)正则表达式: 1.年月日正则表达式:^((19|20)[0-9]{2})-((0?2-((0?[1-9])|([1-2][0-9])))|(0?(1|3|5| ...

  5. 关于Java中文乱码与日期格式

    关于Java中文乱码与日期格式 Java中文乱码的问题其实很普遍了,首先,一般不会在Windows平台下面出现,同时,一般在Tomcat应用服务器下也都正常,但是到了WebSphere,Weblogi ...

  6. JS判断上传图片格式是否正确

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. Linux C判断日期格式是否合法

    Title:Linux C判断日期格式是否合法 --2013-10-11 11:54 #include <string.h> // strlen() , strncpy() #includ ...

  8. php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)

    /** * 表单校验函数库 */ /** * 判断email格式是否正确 * @param $email */ function is_email($email) { return strlen($e ...

  9. Java中用正则表达式找出数字

    Java中用正则表达式找出数字 1.题目    String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488 ...

随机推荐

  1. css正三角倒三角

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. C++复制、压缩文件夹

    之前写过一篇用zlib库来压缩的,但zlib只能压缩文件,我需要压缩文件夹,要想压缩文件夹还得利用zlib库自己写代码,我是真的服了,一个开源库这么不好用. C++复制文件夹也是麻烦事,网上这篇文章: ...

  3. 异常检测算法:Isolation Forest

    iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好.训练快(线性复杂度)等特点. 1. 前言 iFore ...

  4. c#实现Word转换PNG图片

    由于项目需要,经过一些大神的指导以及github,stackOverflow找资料,写了个这么个程序. 主要是因为word文档有特殊字体,特殊字体处理就要用到EnhMetaFileBits,即获取一页 ...

  5. bzoj 3864: Hero meet devil [dp套dp]

    3864: Hero meet devil 题意: 给你一个只由AGCT组成的字符串S (|S| ≤ 15),对于每个0 ≤ .. ≤ |S|,问 有多少个只由AGCT组成的长度为m(1 ≤ m ≤ ...

  6. BZOj 4540: [Hnoi2016]序列 [莫队 st表 预处理]

    4540: [Hnoi2016]序列 题意:询问区间所有子串的最小值的和 不强制在线当然上莫队啦 但是没想出来,因为不知道该维护当前区间的什么信息,维护前后缀最小值的话不好做 想到单调栈求一下,但是对 ...

  7. js中的this和箭头函数中的this

    一.ES6 允许使用"箭头"(=>)定义函数. // var f = v => v;// 上面的箭头函数等同于: // var f = function(v) {// ...

  8. .NET方面的框架的整理和总结

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...

  9. 模拟器配置使用Fildder进行抓包,包含Https+证书

    1.首先,百度检索.参考别人的,大致上都是到安装证书就失败了.我后面只说几个关键点. 2.安装证书,必须设置屏幕密码.我最开始使用把cef拷贝到,手机结果出现bug,安装不了.后来采用了在手机内部访问 ...

  10. Linux 常用命令 (common commands for linux)

    Linux 常用命令 (Common Commands For Linux) 1.声明,此文章仅写基于 Bash shell 常用的命令,如果遇上命令在使用过程中提示没有,可能随着更新,命令也被替换掉 ...