出生日期格式为8位数字的字符串 如:yyyyMMdd 规则:yyyy大于1900并小于当前时间,月、日 按日期规则校验
//解决读过来的字符串显示为科学计数法问题
BigDecimal bd = new BigDecimal(strValues[6]);//strValues[6]为第6列读取的数据
String s = bd.toPlainString();
//设置出生日期格式
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
//获取当前系统时间
Integer time = Integer.valueOf(sd.format(new Date()));
//setLenient用于设置Calendar是否宽松解析字符串,如果为false,则严格解析;默认为true,宽松解析
sd.setLenient(false);
try {
//转成指定的格式
sd.parse(bd.toPlainString());
} catch (ParseException e) {
throw new BaseException("出生日期格式不正确");
}
if ((1900 > Integer.valueOf(s.substring(0,4))) || (Integer.valueOf(s) > time)){
throw new BaseException("出生日期格式不正确");
}
accountInfoVO.setBirthDate(s);//出生日期(放数据)
来源:oschina
链接:https://my.oschina.net/u/4287712/blog/3629777