• 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


  • 相关阅读:
    MutationObserver DOM变化的观察
    lspci详解分析
    dpdk快速编译使用
    bonding的系统初始化介绍
    fio测试nvme性能
    [驱动] 一个简单内核驱动,通过qemu调试(1)
    qemu启动vm后,如何host上使用ssh连接?
    Linux C下变量和常量的存储的本质
    从计算机中数据类型的存储方式,思考理解原码,反码,补码
    Linux C动态链接库实现一个插件例子
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13315314.html
Copyright © 2020-2023  润新知