BeanUtils.copyProperties日付変換文字日付変換Long
1874 ワード
独自の日付変換クラスを作成
デフォルトの代わりに独自の日付変換クラスを使用します.次のmain関数のように
import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.lang.time.DateUtils;
public class DateConverter implements Converter {
private static final SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Object convert(Class type, Object value) {
if(value == null) {
return null;
}
if(value instanceof Date) {
return value;
}
if(value instanceof Long) {
Long longValue = (Long) value;
return new Date(longValue.longValue());
}
try {
return dateFormat.parse(value.toString());
//return DateUtils.parseDate(value.toString(), new String[] {"yyyy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss","yyyy-MM-dd HH:mm" });
} catch (Exception e) {
throw new ConversionException(e);
}
}
}
デフォルトの代わりに独自の日付変換クラスを使用します.次のmain関数のように
public static void main(String[] args) {
//
ConvertUtils.register(new DateConverter(), Date.class);
//ConvertUtils.register(new StringConverter(), String.class);
A a = new A();
a.date="2012-03-14 17:22:16";
B b = new B();
try {
BeanUtils.copyProperties(b, a);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(b.getDate());
}