补充String与LocalDateTime互相转换的方法

This commit is contained in:
lifw 2020-02-26 13:18:17 +08:00
parent 83d6428db8
commit d240756f01
2 changed files with 67 additions and 2 deletions

View File

@ -514,6 +514,31 @@ public class DateUtil {
// ------------------------------------ Format start ----------------------------------------------
/**
* 格式化日期时间<br>
* 格式 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);
}
/**
* 根据特定格式格式化日期
*
@ -669,6 +694,30 @@ public class DateUtil {
// ------------------------------------ Parse start ----------------------------------------------
/**
* 构建LocalDateTime对象<br/>
* 格式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对象
*

View File

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