From fbb01b7a7d7339a506ce8db0c298ff00873b3e23 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Mon, 16 Apr 2018 16:20:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=B6=E9=97=B4=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hswebframework/web/bean/FastBeanCopier.java | 16 ++++++++++++++++ .../java/org/hswebframework/web/bean/Source.java | 6 ++++++ .../java/org/hswebframework/web/bean/Target.java | 7 +++++++ 3 files changed, 29 insertions(+) diff --git a/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java b/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java index da55d782d..dd094268a 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/bean/FastBeanCopier.java @@ -5,6 +5,7 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.PropertyUtilsBean; +import org.hswebframework.utils.time.DateFormatter; import org.hswebframework.web.dict.EnumDict; import org.hswebframework.web.proxy.Proxy; import org.springframework.util.ClassUtils; @@ -400,11 +401,26 @@ public final class FastBeanCopier { } } if (targetClass == String.class) { + if (source instanceof Date) { + // TODO: 18-4-16 自定义格式 + return (T) DateFormatter.toString(((Date) source), "yyyy-MM-dd HH:mm:ss"); + } return (T) String.valueOf(source); } if (targetClass == Object.class) { return (T) source; } + if (targetClass == Date.class) { + if (source instanceof String) { + return (T) DateFormatter.fromString((String) source); + } + if (source instanceof Number) { + return (T) new Date(((Number) source).longValue()); + } + if (source instanceof Date) { + return (T) new Date(((Date) source).getTime()); + } + } org.apache.commons.beanutils.Converter converter = BeanUtilsBean .getInstance() .getConvertUtils() diff --git a/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java b/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java index 47dd897d6..cca3c54a3 100644 --- a/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java +++ b/hsweb-core/src/test/java/org/hswebframework/web/bean/Source.java @@ -22,6 +22,12 @@ public class Source { private int age3; + private Date deleteTime=new Date(); + + private Date createTime=new Date(); + + private String updateTime="2018-01-01"; + private NestObject nestObject; diff --git a/hsweb-core/src/test/java/org/hswebframework/web/bean/Target.java b/hsweb-core/src/test/java/org/hswebframework/web/bean/Target.java index 7599c240b..e87c9e1ee 100644 --- a/hsweb-core/src/test/java/org/hswebframework/web/bean/Target.java +++ b/hsweb-core/src/test/java/org/hswebframework/web/bean/Target.java @@ -3,6 +3,7 @@ package org.hswebframework.web.bean; import lombok.Data; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -23,6 +24,12 @@ public class Target { private String age3; + private Date deleteTime=new Date(); + + private String createTime; + + private Date updateTime; + private NestObject nestObject; private NestObject nestObject2;