将一个String类型的转化为Date类型的。
ConvertUtils.register(new Converter(){
@Override
public Date convert(Class type, Object value) {
if(value==null||(!(value instanceof String)))
{
return null;
}
String st=(String)value;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse(st);
} catch (ParseException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}, Date.class);
这里尤其要注意重载函数的各参数类型。实际开发中,类型转化器没必要自己写,直接在Converter接口中,找到一个已经实现好的,new一个即可
上面可以转化为 ConvertUtils.register(new DateLocaleConverter(),Date.class);
但实际上,库中的转化器不够健壮,容易报错,无法检测字符串值为空的情况。况且,万一库中没有对应的接口实现,还是要自己去做一个转化器。
写了转化器,便可直接调用BeanUtils.setProperty("birthday",str);方法了。