正则校验日期字符串格式-亲测可直接拿

输入字符串不需要转成Date,但又需要校验,可通过正则校验,也可根据需要灵活结合String的split方法等

import java.util.regex.Pattern;

一、 yyyy-MM-dd

public static void main(String[] args) {
    String dateStr="2021-01-01";
    System.out.println(Pattern.matches("^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|(1|2)[0-9]|30|31)$",dateStr));
}

二、年 yyyy 四个自然数

public static void main(String[] args) {
    String dateStr="2021";
    System.out.println(Pattern.matches("^\\d{4}$",dateStr));
}

三、月 MM 01~ 09 | 10 ~12

public static void main(String[] args) {
    String dateStr="01";
    System.out.println(Pattern.matches("^(0[1-9]|1[0-2])$",dateStr));
}

四、日 dd 01~ 09 | 10 ~ 19 | 20 ~ 29 | 30 ~31

public static void main(String[] args) {
    String dateStr="01";
    System.out.println(Pattern.matches("^(0[1-9]|(1|2)[0-9]|30|31)$",dateStr));
}

五、月 m 1 ~ 12

public static void main(String[] args) {
    String dateStr="1";
    System.out.println(Pattern.matches("^([1-9]|1[0-2])$",dateStr));
}

六、日 d 1 ~ 9 | 10 ~ 19 | 20 ~ 29 | 30 ~ 31

public static void main(String[] args) {
    String dateStr="1";
    System.out.println(Pattern.matches("^(([1-9])|((1|2)[0-9])|30|31)$",dateStr));
}

七、月 MM 01~ 09 | 10 ~12 或 m 1 ~ 12

public static void main(String[] args) {
    String dateStr="1";
    System.out.println(Pattern.matches("^(0?[1-9]|1[0-2])$",dateStr));
}

八、日 dd 01~ 09 | 10 ~ 19 | 20 ~ 29 | 30 ~ 31 或 d 1 ~ 9 | 10 ~ 19 | 20 ~ 29 | 30 ~ 31

public static void main(String[] args) {
    String dateStr="1";
    System.out.println(Pattern.matches("^((0?[1-9])|((1|2)[0-9])|30|31)$",dateStr));
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值