package cn.org.rapid_framework.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.apache.commons.lang.StringUtils;
/**
* @author badqiu
*/
public class DateConvertUtils {
public static java.util.Date parse(String dateString,String dateFormat) {
return parse(dateString, dateFormat,java.util.Date.class);
}
@SuppressWarnings("unchecked")
public static <T extends java.util.Date> T parse(String dateString,String dateFormat,Class<T> targetResultType) {
if(StringUtils.isEmpty(dateString))
return null;
DateFormat df = new SimpleDateFormat(dateFormat);
try {
long time = df.parse(dateString).getTime();
java.util.Date t = targetResultType.getConstructor(long.class).newInstance(time);
return (T)t;
} catch (ParseException e) {
String errorInfo = "cannot use dateformat:"+dateFormat+" parse datestring:"+dateString;
throw new IllegalArgumentException(errorInfo,e);
} catch (Exception e) {
throw new IllegalArgumentException("error targetResultType:"+targetResultType.getName(),e);
}
}
public static String format(java.util.Date date,String dateFormat) {
if(date == null)
return null;
return new SimpleDateFormat(dateFormat).format(date);
}
}