class SmartDateDeserializer extends JsonDeserializer<Date> {
    @Override
    @SneakyThrows
    public Date deserialize(JsonParser p, DeserializationContext ctxt) {<FILL_FUNCTION_BODY>}
}

        if (p.hasToken(JsonToken.VALUE_STRING)) {
            String str = p.getText().trim();
            if (str.length() == 0) {
                return (Date) getEmptyValue(ctxt);
            }
            return TimeUtils.parseDate(str);
        }
        if (p.hasToken(JsonToken.VALUE_NUMBER_INT)) {
            long ts = p.getLongValue();
            return new Date(ts);
        }
        return null;
    
<methods>public void <init>() ,public abstract java.util.Date deserialize(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext) throws java.io.IOException, com.fasterxml.jackson.core.JsonProcessingException,public java.util.Date deserialize(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.util.Date) throws java.io.IOException,public java.lang.Object deserializeWithType(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.jsontype.TypeDeserializer) throws java.io.IOException,public java.lang.Object deserializeWithType(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.jsontype.TypeDeserializer, java.util.Date) throws java.io.IOException,public com.fasterxml.jackson.databind.deser.SettableBeanProperty findBackReference(java.lang.String) ,public JsonDeserializer<?> getDelegatee() ,public com.fasterxml.jackson.databind.util.AccessPattern getEmptyAccessPattern() ,public java.lang.Object getEmptyValue() ,public java.lang.Object getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext) throws com.fasterxml.jackson.databind.JsonMappingException,public Collection<java.lang.Object> getKnownPropertyNames() ,public com.fasterxml.jackson.databind.util.AccessPattern getNullAccessPattern() ,public java.util.Date getNullValue() ,public java.util.Date getNullValue(com.fasterxml.jackson.databind.DeserializationContext) throws com.fasterxml.jackson.databind.JsonMappingException,public com.fasterxml.jackson.databind.deser.impl.ObjectIdReader getObjectIdReader() ,public Class<?> handledType() ,public boolean isCachable() ,public JsonDeserializer<?> replaceDelegatee(JsonDeserializer<?>) ,public java.lang.Boolean supportsUpdate(com.fasterxml.jackson.databind.DeserializationConfig) ,public JsonDeserializer<java.util.Date> unwrappingDeserializer(com.fasterxml.jackson.databind.util.NameTransformer) <variables>