java datelocaleconverter 日期转换_DateConverter does not support default String to 'Date' conversion.的处理...

DateConverter does not support default String to 'Date' conversion.的处理

在使用beanutils工具类封装javabean时,beanUtils不提供直接将字符串转换成Date(java.util.Date)数据类型的方法,

所以会出现下面警告:

52b7823928ee5a4e4a3739c39c03964b.png

或者类似下面异常:

org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.

解决办法:

1.自己写个转换器的代码块

try {

ConvertUtils.register(new Converter() {//注册一个日期转换器

public Object convert(Class type, Object value) {

Date date1 =null;

if(value instanceof String){

String date = (String) value;

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

try {

date1 = sdf.parse(date);

} catch (ParseException e) {

e.printStackTrace();

}

}

return date1;

}

}, Date.class);

2.哈哈!beanutil这个工具类源码里有提供DateLocaleConverter这个类做注册的转化器

ConvertUtils.register(new DateLocaleConverter(), Date.class);

现实工具类方法为:

[java]  view plain

copy

publicstaticvoidtransMap2Bean(Mapmap, Object obj) {

//ConvertUtils.register(new DateLocaleConverter(), Date.class);

ConvertUtils.register(newConverter()

{

@SuppressWarnings("rawtypes")

@Override

publicObject convert(Class arg0, Object arg1)

{

System.out.println("注册字符串转换为date类型转换器");

if(arg1 ==null)

{

returnnull;

}

if(!(arg1instanceofString))

{

thrownewConversionException("只支持字符串转换 !");

}

String str = (String)arg1;

if(str.trim().equals(""))

{

returnnull;

}

SimpleDateFormat sd = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try{

returnsd.parse(str);

}

catch(ParseException e)

{

thrownewRuntimeException(e);

}

}

}, java.util.Date.class);

if(map ==null|| obj ==null) {

return;

}

try{

BeanUtils.populate(obj, map);

} catch(Exception e) {

System.out.println("Map转化Bean异常:"+ e);

}

}


版权声明:本文为weixin_42545503原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。