字符串转时间格式-严格验证时间格式

本文介绍如何通过设置SimpleDateFormat的lenient属性为false来实现严格的日期格式校验,避免因日期格式错误导致的问题。当lenient设为false时,SimpleDateFormat会严格检查日期的有效性,如2017/02/29将被视为非法日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dateFormat.setLenient(false);

前台经常会用到字符串作为时间使用,那在进行Format时,设置这个属性false就会严格校验时间类型合法性


// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,
//比如2017/02/29会被接受,并转换成2004/03/01,实际201702没有29号
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); 
dateFormat.setLenient(false);  
try {  
    dateFormat.parse(startym);  
 }catch (ParseException e) {  
     e.printStackTrace();
    throw new AppException("开始年月日格式不正确!<br>检查时间格式:"+startym);
   }
try {  
       dateFormat.parse(endym);  
}catch (ParseException e) {  
   e.printStackTrace();
   throw new AppException("结束年月日格式不正确!<br>检查时间格式:"+endym);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值