首页 > 编程语言 >Java.年月日正则表达式

Java.年月日正则表达式

时间:2024-05-23 18:18:20浏览次数:30  
标签:12 Java 正则表达式 2024 19 格式 20 年月日 checkYyyyMMdd

表达式: yyyy-MM:   ^([1-9]{1}[0-9]{3}[\\-]{1}){1}((1[0-2]{1}){1}|(0[1-9]{1})|([1-9]{1})){1}$ yyyy-MM-dd:   ^((((19|20)\\d{2})(-)(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((19|20)\\d{2})(-)(0?[469]|11)-(0?[1-9]|[12]\\d|30))|(((19|20)\\d{2})(-)(0?2)-(0?[1-9]|1\\d|2[0-8]))|(((19|20)([13579][26]|[2468][048]|0[48])|(2000))(-)(0?2)-(0?[1-9]|[12]\\d)))$   验证实现:

/**
    *
    * @return
    */
    private  static boolean checkYyyyMM(String strDate) {
       //验证yyyy-MM
       String regex = "^([1-9]{1}[0-9]{3}[\\-]{1}){1}((1[0-2]{1}){1}|(0[1-9]{1})|([1-9]{1})){1}$";       
       Pattern pattern = Pattern.compile(regex);
       Matcher matcher = pattern.matcher(strDate);
       boolean blnFlag= matcher.matches();
       System.out.println("Is valid year and month number: " + blnFlag);        
       return blnFlag;
   }
    
    
    private static boolean checkYyyyMMdd(String strDate) {
    
        // 编译正则表达式
        Pattern pattern = Pattern.compile("^((((19|20)\\d{2})(-)(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((19|20)\\d{2})(-)(0?[469]|11)-(0?[1-9]|[12]\\d|30))|(((19|20)\\d{2})(-)(0?2)-(0?[1-9]|1\\d|2[0-8]))|(((19|20)([13579][26]|[2468][048]|0[48])|(2000))(-)(0?2)-(0?[1-9]|[12]\\d)))$");
        Matcher matcher = pattern.matcher(strDate);
        // 判断是否匹配
        if (matcher.matches()) {
            System.out.println("日期格式正确");
            return true;
        } else {
            System.out.println("日期格式错误");
            return false;
        }
    }

 测试示例

public static void main(String[] args) {
        // TODO Auto-generated method stub
        checkYyyyMM("2024-05");
        checkYyyyMM("2024-5");
        checkYyyyMM("2024-12");
        checkYyyyMM("2024-13");
        

        checkYyyyMMdd("2024-12-23");
        checkYyyyMMdd("2024-12-21");
        checkYyyyMMdd("2024-05-21");
        checkYyyyMMdd("2024-05-04");
        checkYyyyMMdd("2024-1-4");
        checkYyyyMMdd("2024-1-04");
checkYyyyMMdd("2024-2-29");
checkYyyyMMdd("2024-2-30");
}

测试结果

Is valid year and month number: true
Is valid year and month number: true
Is valid year and month number: true
Is valid year and month number: false
日期格式正确
日期格式正确
日期格式正确
日期格式正确
日期格式正确
日期格式正确
日期格式正确
日期格式错误

 

标签:12,Java,正则表达式,2024,19,格式,20,年月日,checkYyyyMMdd
From: https://www.cnblogs.com/oumi/p/18209135

相关文章

  • JavaScript中reduce()详解及使用方法。
    一、定义和用法reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce()可以作为一个高阶函数,用于函数的compose。reduce()方法为归并类方法,最常用的场景就是,计算数组中的每一项的总和。注意:reduce()对于空数组是不会执行回调函数的......
  • Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发
    SpringAI是Spring官方社区项目,旨在简化JavaAI应用程序开发,让Java开发者像使用Spring开发普通应用一样开发AI应用。SpringCloudAlibabaAI以SpringAI为基础,并在此基础上提供阿里云通义系列大模型全面适配,让用户在5分钟内开发基于通义大模型的JavaAI应用。......
  • java 通过 microsoft graph 调用outlook(三)
    这次会添加一个Reply接口,并且使用6.10.0版本 直接上代码一,POM<!--office365--><dependency><groupId>com.microsoft.graph</groupId><artifactId>microsoft-graph</artifactId><......
  • Pairwise实现(Java篇)
    importjava.util.HashMap;/***PairWise(成对)测试方法*author:likeqc*date:2021-4-411:06:59*/classPairWise{/***@paramstrString[][],二维数组,一维数组str[i]中存放第i个因素的因子*/privatestaticvoidsolution(String[][]s......
  • 位运算符在 Javascript 中的运用
    零、资料JavaScript中的位运算和权限设计javascript位运算技巧巧用JS位运算JavaScript位运算及其妙用聊聊JavaScript中的二进制数一、权限在权限设计时,每一个基础权限单元都是二进制数形式,有且只有一位值是1,其余全部是0,即权限码是 2^n 。所以,在这套设......
  • 关于如何使用JNI将C语言接口打包成可供java环境调用的so库文件
    一、环境检查在linux下打包.so文件,首先需要确认是否有安装java环境,可通过在终端中输入指令java的方式来进行查看。如下图所示,则为已安装java环境。  若当前未安装java环境,则可通过在终端中输入如下指令进行安装,我这里使用的java环境为1.8.0版本。sudoapt-getinstallo......
  • 使用-HTML5-和-JavaScript-开发-Windows-商店应用-全-
    使用HTML5和JavaScript开发Windows商店应用(全)原文:zh.annas-archive.org/md5/8F13EC8AC7BDB8535E7218C5DDB48475译者:飞龙协议:CCBY-NC-SA4.0序言使用HTML5和JavaScript开发WindowsStore应用是一本实践性强的指南,涵盖了WindowsStore应用的基本重要特性以及......
  • 精通-JavaScript-高性能-全-
    精通JavaScript高性能(全)原文:zh.annas-archive.org/md5/582AFDEF15013377BB79AB8CEA3B2B47译者:飞龙协议:CCBY-NC-SA4.0序言欢迎来到精通JavaScript高性能。在这本书中,我们已经以帮助任何JavaScript开发者,无论他们是新手上路还是经验丰富的老手的方式,覆盖了JavaScrip......
  • Java的深浅拷贝认识
    目录浅拷贝深拷贝分辨代码里的深浅拷贝在Java中,深拷贝和浅拷贝是对象复制的两种方式,主要区别在于对对象内部的引用类型的处理上。浅拷贝定义:浅拷贝是指创建一个新的对象,但这个新对象的属性(包括引用类型的属性)仍然指向原来对象的属性。换言之,如果原对象中的属性是一个引用类型......
  • #Java集合的组内平均值的计算方法
    要计算Java集合(例如List或Set中的Integer、Double或其他数值类型的对象)的组内平均值,我们需要遍历这个集合,累加所有的元素值,然后除以集合的大小(即元素的数量)。以下是一个详细的步骤说明和完整的代码示例。1.步骤说明(1)创建集合:首先,我们需要一个包含数值的集合。在这个例子中,我们将......