zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    Spark Streaming 的容错
    Master 接受其它组件的注册
    Spark Context 概述
    Python 使用random模块生成随机数
    Python 中print 和return 的区别
    Python 访问字典(dictionary)中元素
    PIL:处理图像的好模块
    2.线性回归
    3.梯度下降法
    4.pca与梯度上升法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13315314.html
Copyright © 2011-2022 走看看