diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java index 5d2da2fdb..86f39143f 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java @@ -468,10 +468,10 @@ public class Convert { * @return 结果 * @since 5.0.7 */ - public static Date toLocalDateTime(Object value, Date defaultValue) { + public static LocalDateTime toLocalDateTime(Object value, LocalDateTime defaultValue) { return convertQuietly(LocalDateTime.class, value, defaultValue); } - + /** * Instant
* 如果给定的值为空,或者转换失败,返回默认值
@@ -498,7 +498,19 @@ public class Convert { public static Date toDate(Object value) { return toDate(value, null); } - + + /** + * 转换为LocalDateTime
+ * 如果给定的值为空,或者转换失败,返回null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static LocalDateTime toLocalDateTime(Object value) { + return toLocalDateTime(value, null); + } + /** * 转换为Enum对象
* 如果给定的值为空,或者转换失败,返回默认值
diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java index 978ab9b4d..2cf4036e3 100644 --- a/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java @@ -1,13 +1,15 @@ package cn.hutool.core.convert; -import cn.hutool.core.date.DateUtil; -import org.junit.Assert; -import org.junit.Test; - +import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; +import org.junit.Assert; +import org.junit.Test; + +import cn.hutool.core.date.DateUtil; + public class DateConvertTest { @Test @@ -51,4 +53,20 @@ public class DateConvertTest { java.sql.Date value2 = Convert.convert(java.sql.Date.class, timeLong); Assert.assertEquals(timeLong, value2.getTime()); } + + @Test + public void toLocalDateTimeTest() { + Date src = new Date(); + + LocalDateTime ldt = Convert.toLocalDateTime(src); + Assert.assertEquals(ldt, DateUtil.toLocalDateTime(src)); + + Timestamp ts = Timestamp.from(src.toInstant()); + ldt = Convert.toLocalDateTime(ts); + Assert.assertEquals(ldt, DateUtil.toLocalDateTime(src)); + + String str = "2020-12-12 12:12:12.0"; + ldt = Convert.toLocalDateTime(str); + Assert.assertEquals(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")), str); + } }