diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
index a4276d43b..188c9db8a 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
@@ -513,7 +513,32 @@ public class DateUtil {
}
// ------------------------------------ Format start ----------------------------------------------
-
+
+ /**
+ * 格式化日期时间
+ * 格式 yyyy-MM-dd HH:mm:ss
+ *
+ * @param localDateTime 被格式化的日期
+ * @return 格式化后的字符串
+ */
+ public static String formatLocalDateTime(LocalDateTime localDateTime) {
+ return format(localDateTime, DatePattern.NORM_DATETIME_PATTERN);
+ }
+
+ /**
+ * 根据特定格式格式化日期
+ * @param localDateTime 被格式化的日期
+ * @param format 日期格式,常用格式见: {@link DatePattern}
+ * @return 格式化后的字符串
+ */
+ public static String format(LocalDateTime localDateTime, String format) {
+ if (null == localDateTime || StrUtil.isBlank(format)) {
+ return null;
+ }
+ DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
+ return localDateTime.format(df);
+ }
+
/**
* 根据特定格式格式化日期
*
@@ -668,7 +693,31 @@ public class DateUtil {
// ------------------------------------ Format end ----------------------------------------------
// ------------------------------------ Parse start ----------------------------------------------
-
+
+ /**
+ * 构建LocalDateTime对象
+ * 格式:yyyy-MM-dd HH:mm:ss
+ *
+ * @param dateStr 时间字符串(带格式)
+ * @return LocalDateTime对象
+ */
+ public static LocalDateTime parseLocalDateTime(CharSequence dateStr) {
+ return parseLocalDateTime(dateStr, DatePattern.NORM_DATETIME_PATTERN);
+ }
+
+ /**
+ * 构建LocalDateTime对象
+ * @param dateStr 时间字符串(带格式)
+ * @param format 使用{@link DatePattern}定义的格式
+ * @return LocalDateTime对象
+ */
+ public static LocalDateTime parseLocalDateTime(CharSequence dateStr, String format) {
+ dateStr = normalize(dateStr);
+ DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
+ LocalDateTime ldt = LocalDateTime.parse(dateStr,df);
+ return ldt;
+ }
+
/**
* 构建DateTime对象
*
diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java
index e77e00a34..5d992e5b1 100644
--- a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java
@@ -658,4 +658,20 @@ public class DateUtilTest {
boolean expired = DateUtil.isExpired(startDate, DateField.DAY_OF_YEAR, length, endDate);
Assert.assertTrue(expired);
}
+
+ @Test
+ public void localDateTimeTest() {
+ // 测试字符串与LocalDateTime的互相转换
+ String strDate = "2019-12-01 17:02:30";
+ LocalDateTime ldt = DateUtil.parseLocalDateTime(strDate);
+ String strDate1 = DateUtil.formatLocalDateTime(ldt);
+ System.out.println(strDate1);
+ Assert.assertEquals(strDate, strDate1);
+
+ strDate = "2019年12月01日 17:02:30.111";
+ ldt = DateUtil.parseLocalDateTime(strDate, DatePattern.NORM_DATETIME_MS_PATTERN);
+ strDate1 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_MS_PATTERN);
+ System.out.println(strDate1);
+ Assert.assertEquals(strDate, strDate1);
+ }
}