package frame.data.convert; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import frame.data.Variant; import frame.util.Util; public class DateTranslator extends Convertor { private static String DefaultFormat = "yyyy-MM-dd HH:mm:ss"; public Object loadToObject(String value) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.parse(value); } public Variant loadToVariant(String value) throws Exception { if (value == null) { return new Variant(); } SimpleDateFormat sdf = new SimpleDateFormat(format); Date date = sdf.parse(value); return new Variant(date); } public String toString(Object value) throws Exception { if (value == null) { return null; } if (value instanceof Date) { Date date = (Date)value; return Util.DataTimeToString(date, format); } return value.toString(); } public String toSqlString(Object value) throws Exception { Date date = new Date(); return Util.newDBDateString(date); } public String toSqlString(String prefix, Object value, String suffix) throws Exception { return toSqlString(value); } public String toJSONString(Object value) throws Exception { if (value == null) { return "null"; } if (value instanceof Date) { Date date = (Date)value; return "\"" + Util.DataTimeToString(date, format) + "\""; } return "\"" + value.toString() + "\""; } public void setFormat(String format) { if (Util.isEmptyStr(format)) { this.format = DefaultFormat; } else { this.format = format; } } @Override public Integer toInteger(Object object) throws Exception { throw new Exception("can not translate date (" + object + ") to Integer"); } @Override public Double toDouble(Object object) throws Exception { throw new Exception("can not translate date (" + object + ") to Double"); } @Override public BigDecimal toBigDecimal(Object object) throws Exception { throw new Exception("can not translate date (" + object + ") to BigDecimal"); } @Override public Boolean toBoolean(Object object) throws Exception { throw new Exception("can not translate date (" + object + ") to BigDecimal"); } @Override public Date toDate(Object object) throws Exception { return (Date) object; } @Override public Object toSelfType(Object value) throws Exception { return toDate(value); } }