package org.beanfuse.bean.converters; import java.sql.Date; import org.apache.commons.beanutils.ConversionException; import org.apache.commons.beanutils.Converter; import org.apache.commons.lang.StringUtils; /** * This class is converts a java.util.Date to a String and a String to a * java.util.Date. */ public class SqlDateConverter implements Converter { public Object convert(final Class type, final Object value) { if (value == null) { return null; } else if (type == Date.class) { return convertToDate(value); } else if (type == String.class) { return convertToString(value); } throw new ConversionException("Could not convert " + value.getClass().getName() + " to " + type.getName()); } /** * 将日期字符串转换成日期<br> * format 1: yyyy-MM-dd<br> * format 2: yyyyMMdd * * @param type * @param value * @return */ protected Object convertToDate(final Object value) { if (StringUtils.isEmpty((String) value)) { return null; } else { String dateStr = (String) value; if (!StringUtils.contains(dateStr, "-")) { StringBuilder dateBuf = new StringBuilder(dateStr); dateBuf.insert("yyyyMM".length(), '-'); dateBuf.insert("yyyy".length(), '-'); dateStr = dateBuf.toString(); } return Date.valueOf(dateStr); } } protected Object convertToString(Object value) { return value.toString(); } }