package org.nutz.mvc.adaptor.convertor;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.nutz.castor.Castors;
import org.nutz.lang.Strings;
import org.nutz.lang.Times;
import org.nutz.mvc.adaptor.ParamConvertor;
public class DateParamConvertor implements ParamConvertor {
private Class<?> type;
private DateFormat dfmt;
public DateParamConvertor(Class<?> type, String datefmt) {
this.type = type;
if (Strings.isBlank(datefmt)) {
dfmt = null;
} else {
dfmt = new SimpleDateFormat(datefmt);
}
}
public Object convert(String[] ss) {
if (null == ss || ss.length == 0)
return null;
if (Strings.isBlank(ss[0]))
return null;
// 如果不为 null,必然要转换成日期
if (null != dfmt) {
Date o = Times.parseq(dfmt, ss[0]);
return Castors.me().castTo(o, type);
}
// 默认采用转换器转换
return Castors.me().cast(ss[0], String.class, type);
}
}