BeanUtils工具处理时间格式转换
通过BeanUtils工具可以将map集合中的数据赋值到一个JavaBean对象中,不管javabean中有多少属性,使用几行代码即可完成javabean的数据封装,前提是map集合中的key值和javabean中的属性值保持一致!
通常,通过获取页面传递参数得到的Map 集合中的键值均为字符串类型,BeanUtils仅支持将字符串类型和基本数据类型之间的自动转换。但实际应用中,面对的情况可能更复杂,javabean中可能存在基本类型以外的类型如java.util.Date类型,Map中这个日期字段传过来是字符串,数据类型无法转换,这时就会抛出异常。
面对这种情况,就需要注册一个转换器来应对:
- 创建一个日期转换器:DateConverter对象,
- 设置格式:DateConverter对象.setPattern(“yyyy-MM-dd”),或者public void setPatterns(String[] patterns)
- 进行注册:ConvertUtils.register(Converter converter, Class<?> clazz);clazz为要注册格式的类,即谁注册。
如:
//创建一个日期转换器
DateConverter dateConverter = new DateConverter();
//设置格式
dateConverter.setPatterns("yyyy-MM-dd");
//注册格式
ConvertUtils.register(dateConverter, Date.class);
//封装数据
BeanUtils.populate(bean, properties);
当遇到java.util.Date类型时,就使用这个转换器,将字符串转换成Date类型。