java 日期正则表达式_Java里面效验日期的正则表达式

展开全部

||public static void main(String[] args)

{

String checkValue = "20000431112230";

String year = checkValue.substring(0, 4); // 获取年份e69da5e6ba903231313335323631343130323136353331333332643230

String month = checkValue.substring(4, 6); // 获取月份

Boolean isLeap = leapYear(Integer.parseInt(year)); // 判断闰年

System.out.println(isLeap);

StringBuffer eL= new StringBuffer();

String longMonth = "01030507081012"; // 31天的月份

String fix = "([2][0-3]|[0-1][0-9]|[1-9])[0-5][0-9]([0-5][0-9]|[6][0])";

if(isLeap && month.equals("02")){  // 针对2月份的情况 【闰年】

eL.append("\\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);

}else if(!isLeap && month.equals("02")){ // 针对2月份的情况 【非闰年】

eL.append("\\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-8]|[0][1-9]|[1-9])"+fix);

}else if(longMonth.contains(month)){ // 31天月份

eL.append("\\d{4}([1][0-2]|[0][0-9])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);

}else{ // 30天月份

eL.append("\\d{4}([1][0-2]|[0][0-9])([3][0]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);

}

Pattern p = Pattern.compile(eL.toString());

Matcher m = p.matcher(checkValue);

boolean flag = m.matches();

if(flag )

{

System.out.println("格式正确");

}

else

{

System.out.println("格式错误");

}

}

public static boolean leapYear(int year) {

Boolean isLeap = false;

if (((year % 100 == 0) && (year % 400 == 0))

|| ((year % 100 != 0) && (year % 4 == 0)))

isLeap = true;

return isLeap;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值