fix DateConvert

This commit is contained in:
Looly
2019-12-18 17:34:32 +08:00
parent 7ffdc2c473
commit 0db031e88b
11 changed files with 82 additions and 28 deletions

View File

@@ -1,8 +1,5 @@
package cn.hutool.json;
import java.lang.reflect.Type;
import java.util.List;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.convert.Converter;
@@ -14,6 +11,9 @@ import cn.hutool.core.util.TypeUtil;
import cn.hutool.json.serialize.GlobalSerializeMapping;
import cn.hutool.json.serialize.JSONDeserializer;
import java.lang.reflect.Type;
import java.util.List;
/**
* JSON转换器
*
@@ -76,7 +76,7 @@ public class JSONConverter implements Converter<JSON> {
return (T) deserializer.deserialize((JSON)value);
}
}
Object targetValue;
try {
targetValue = Convert.convert(targetType, value);

View File

@@ -1,21 +1,5 @@
package cn.hutool.json;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAccessor;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.file.FileReader;
import cn.hutool.core.lang.TypeReference;
@@ -31,6 +15,21 @@ import cn.hutool.json.serialize.JSONDeserializer;
import cn.hutool.json.serialize.JSONObjectSerializer;
import cn.hutool.json.serialize.JSONSerializer;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.time.temporal.TemporalAccessor;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
/**
* JSON工具类
*

View File

@@ -9,7 +9,7 @@ import java.time.LocalDateTime;
/**
* 问题反馈对象中有JDK8日期对象时转换失败5.0.7修复
*/
public class Isse644Test {
public class Issue644Test {
@Test
public void toBeanTest(){

View File

@@ -0,0 +1,29 @@
package cn.hutool.json;
import cn.hutool.core.date.DateUtil;
import lombok.Data;
import org.junit.Assert;
import org.junit.Test;
import java.util.Date;
/**
* 用于测试1970年前的日期负数还有int类型的数字转日期可能导致的转换失败问题。
*/
public class Issue677Test {
@Test
public void toBeanTest(){
final AuditResultDto dto = new AuditResultDto();
dto.setDate(DateUtil.date(-1497600000));
final String jsonStr = JSONUtil.toJsonStr(dto);
final AuditResultDto auditResultDto = JSONUtil.toBean(jsonStr, AuditResultDto.class);
Assert.assertEquals("Mon Dec 15 00:00:00 CST 1969", auditResultDto.getDate().toString());
}
@Data
public static class AuditResultDto{
private Date date;
}
}