欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-06 09:05:13
本文实例讲述了java正则判断日期格式是否正确的方法。分享给大家供大家参考,具体如下: 1、java中用正则表达式判断日期格式是否正确 datetype.java:...

本文实例讲述了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正则表达式在线测试工具:

正则表达式在线生成工具:

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