Java正则判断日期格式是否正确的方法示例

所属分类: 软件编程 / java 阅读数: 52
收藏 0 赞 0 分享

本文实例讲述了Java正则判断日期格式是否正确的方法。分享给大家供大家参考,具体如下:

1、Java中用正则表达式判断日期格式是否正确

DateType.java:

/**
 * @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、运行结果

true
false
false
false
false
true

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述对大家java程序设计有所帮助。

更多精彩内容其他人还在看

Spring boot将配置属性注入到bean类中

本篇文章主要介绍了Spring boot将配置属性注入到bean类中,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Java正则判断日期格式是否正确的方法示例

这篇文章主要介绍了Java正则判断日期格式是否正确的方法,结合实例形式分析了Java针对日期字符串正则判断的相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

java Future 接口使用方法详解

这篇文章主要介绍了java Future 接口使用方法详解,Future接口是Java线程Future模式的实现,可以来进行异步计算的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java 读取外部资源的方法详解及实例代码

这篇文章主要介绍了Java 读取外部资源的方法详解及实例代码的相关资料,经常有读取外部资源的要求,如配置文件等等需要读取,需要的朋友可以参考下
收藏 0 赞 0 分享

Java正则表达式之split()方法实例详解

这篇文章主要介绍了Java正则表达式之split()方法,结合实例形式较为详细的分析了split方法的功能、使用方法及相关注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

Java 存储模型和共享对象详解

这篇文章主要介绍了Java 存储模型和共享对象详解的相关资料,对Java存储模型,可见性和安全发布的问题是起源于Java的存储结构及共享对象安全,需要的朋友可以参考下
收藏 0 赞 0 分享

Java使用正则表达式实现找出数字功能示例

这篇文章主要介绍了Java使用正则表达式实现找出数字功能,结合实例形式分析了Java针对数字的匹配查找及非数字替换操作相关实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring核心IoC和AOP的理解

本文主要介绍了Spring核心IoC和AOP的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
收藏 0 赞 0 分享

详解Spring AOP 拦截器的基本实现

本篇文章主要介绍了详解Spring AOP 拦截器的基本实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Mybatis 中的一对一,一对多,多对多的配置原则示例代码

这篇文章主要介绍了 Mybatis 中的一对一,一对多,多对多的配置原则示例代码,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多