package foundation.translator; import java.math.BigDecimal; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import foundation.server.config.DBaseType; import foundation.util.Util; public class TimeStampTranslator extends ITranslator { private static String DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; private static String DateFormat = "yyyy-MM-dd"; private DateFormat dateFormater; public TimeStampTranslator() { dateFormater = new SimpleDateFormat(DateFormat); } public String toString(Object value) throws Exception { if (value == null || value == ValueType.Null) { return null; } Date date = (Date)value; return dateFormater.format(date); } public String toSqlString(DBaseType dbaseType, Object value) throws Exception { if (value == null || value == ValueType.Null) { return "null"; } Date date = toDate(value); return Util.quotedStr(dateFormater.format(date)); } public String toJSONString(Object value) throws Exception { if (value == null || value == ValueType.Null) { return "null"; } Date date = (Date)value; return "\"" + dateFormater.format(date) + "\""; } public String toSchemaString(Object value) throws Exception { if (value == null || value == ValueType.Null) { return ""; } Date date = (Date)value; return "\"" + dateFormater.format(date) + "\""; } @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 { Timestamp date = (Timestamp)object; Date result = new Date(date.getTime()); return result; } @Override public Object toTranslatorTypeValue(Object value) throws Exception { return toDate(value); } @Override public Object loadObjectFrom(String value) throws Exception { if (Util.isEmpty(value)) { return null; } return dateFormater.parse(value); } @Override public void setFormat(String format) { if (Util.isEmpty(format)) { format = DateTimeFormat; } this.format = format; dateFormater = new SimpleDateFormat(format); } @Override public Class getDataClass() { return Date.class; } public static void main(String[] args) throws ParseException { DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd"); Date parsedDate = dateFormater.parse("2021-03-09"); System.out.println(parsedDate); } }