diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d4688788..1fdeb3e84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * 【http 】 优化Browser版本正则判断 * 【setting】 增加YamlUtil * 【extra 】 SenvenZExtractor改名为SevenZExtractor,增加getFirst、get方法 +* 【core 】 DateConverter修改返回java.util.Date而非DateTime(issue#I4BOAP@Gitee) ### 🐞Bug修复 * 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java index cbd2dbd7b..e69061d8d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java @@ -13,13 +13,14 @@ import java.util.Calendar; * 日期转换器 * * @author Looly - * */ public class DateConverter extends AbstractConverter { private static final long serialVersionUID = 1L; private final Class targetType; - /** 日期格式化 */ + /** + * 日期格式化 + */ private String format; /** @@ -35,7 +36,7 @@ public class DateConverter extends AbstractConverter { * 构造 * * @param targetType 目标类型 - * @param format 日期格式 + * @param format 日期格式 */ public DateConverter(Class targetType, String format) { this.targetType = targetType; @@ -74,11 +75,11 @@ public class DateConverter extends AbstractConverter { } else { // 统一按照字符串处理 final String valueStr = convertToStr(value); - final java.util.Date date = StrUtil.isBlank(this.format) // + final DateTime dateTime = StrUtil.isBlank(this.format) // ? DateUtil.parse(valueStr) // : DateUtil.parse(valueStr, this.format); - if(null != date){ - return wrap(date); + if (null != dateTime) { + return wrap(dateTime); } } @@ -87,25 +88,26 @@ public class DateConverter extends AbstractConverter { /** * java.util.Date转为子类型 + * * @param date Date * @return 目标类型对象 */ - private java.util.Date wrap(java.util.Date date){ + private java.util.Date wrap(DateTime date) { // 返回指定类型 if (java.util.Date.class == targetType) { - return date; + return date.toJdkDate(); } if (DateTime.class == targetType) { - return DateUtil.date(date); + return date; } if (java.sql.Date.class == targetType) { - return new java.sql.Date(date.getTime()); + return date.toSqlDate(); } if (java.sql.Time.class == targetType) { return new java.sql.Time(date.getTime()); } if (java.sql.Timestamp.class == targetType) { - return new java.sql.Timestamp(date.getTime()); + return date.toTimestamp(); } throw new UnsupportedOperationException(StrUtil.format("Unsupported target Date type: {}", this.targetType.getName())); @@ -113,10 +115,11 @@ public class DateConverter extends AbstractConverter { /** * java.util.Date转为子类型 + * * @param mills Date * @return 目标类型对象 */ - private java.util.Date wrap(long mills){ + private java.util.Date wrap(long mills) { // 返回指定类型 if (java.util.Date.class == targetType) { return new java.util.Date(mills); diff --git a/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java b/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java index 7b7c09150..6265b6ca0 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java @@ -15,27 +15,27 @@ public class FtpTest { @Ignore public void cdTest() { Ftp ftp = new Ftp("looly.centos"); - + ftp.cd("/file/aaa"); Console.log(ftp.pwd()); - + IoUtil.close(ftp); } - + @Test @Ignore public void uploadTest() { Ftp ftp = new Ftp("looly.centos"); - + List ls = ftp.ls("/file"); Console.log(ls); - + boolean upload = ftp.upload("/file/aaa", FileUtil.file("E:/qrcodeWithLogo.jpg")); Console.log(upload); - + IoUtil.close(ftp); } - + @Test @Ignore public void reconnectIfTimeoutTest() throws InterruptedException { diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java index 9125d907a..03ce35541 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java @@ -595,4 +595,18 @@ public class JSONObjectTest { json.putByPath("aa.bb", "BB"); Assert.assertEquals("{\"aa\":{\"bb\":\"BB\"}}", json.toString()); } + + + @Test + public void bigDecimalTest(){ + String jsonStr = "{\"orderId\":\"1704747698891333662002277\"}"; + BigDecimalBean bigDecimalBean = JSONUtil.toBean(jsonStr, BigDecimalBean.class); + Assert.assertEquals("{\"orderId\":1704747698891333662002277}", JSONUtil.toJsonStr(bigDecimalBean)); + } + + @Data + static + class BigDecimalBean{ + private BigDecimal orderId; + } }