java日期+正则

正则是最好用的工具 牢记于心

一般java对日期的处理 我觉得基本操作吧 就是

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

通过这个 把形如“2018-06-19”的字符串转换成日期(java.util.Date格式)

但是这个转换 是会抛异常的 比如我取的是数据库中最大的日期 但有可能日期根本不存在 是个字符串 这样的话稳稳的是要报错抛异常的。为了解决这个问题 就又一次想到了正则

String testStr = "";
Pattern p = Pattern.compile("^\\d{4}\\-\\d{1,2}\\-\\d{1,2}$");
Matcher m = p.matcher(testStr);
if(!m.matches()) 
{
	testStr = "2000-01-01";
}
正则说明:
^\\d{4}\\-\\d{1,2}\\-\\d{1,2}$

这是一个纯粹的 yyyy-MM-dd格式的校验 只有完全符合这个格式 才通过 不然就会赋给一个默认值00年1月1号

如果查出来的字符串是 2018-06-19 16:40:42 肯定是不会通过的

但是可以修改为

Pattern p = Pattern.compile("(\\d{4}\\-\\d{1,2}\\-\\d{1,2})+");
Matcher m = p.matcher(testStr);
if(!m.find())
{
    testStr = "2000-01-01"
}

来实现 只要有满足 yyyy-MM-dd格式的就可以转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值