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);
+ }
}