mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
增加函数式的日期格式化方法
This commit is contained in:
parent
ececce7c52
commit
b67464e6c1
@ -4,27 +4,14 @@ import cn.hutool.core.date.format.GlobalCustomFormat;
|
||||
import cn.hutool.core.text.StrUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.Period;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.*;
|
||||
import java.time.chrono.ChronoLocalDate;
|
||||
import java.time.chrono.ChronoLocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.temporal.Temporal;
|
||||
import java.time.temporal.TemporalAccessor;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.time.temporal.TemporalUnit;
|
||||
import java.time.temporal.WeekFields;
|
||||
import java.time.temporal.*;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* JDK8+中的{@link java.time} 工具类封装
|
||||
@ -355,6 +342,25 @@ public class TimeUtil extends TemporalAccessorUtil {
|
||||
return format(date, DatePattern.NORM_DATE_FORMATTER);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 格式化时间函数
|
||||
*
|
||||
* @return 格式化时间的函数
|
||||
*/
|
||||
public static Function<LocalDateTime, String> formatTimeFunction(DateTimeFormatter dateTimeFormatter) {
|
||||
return time -> format(time, dateTimeFormatter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化日期函数
|
||||
*
|
||||
* @return 格式化时间的函数
|
||||
*/
|
||||
public static Function<LocalDate, String> formatDateFunction(DateTimeFormatter dateTimeFormatter) {
|
||||
return date -> format(date, dateTimeFormatter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 日期偏移,根据field不同加不同值(偏移会修改传入的对象)
|
||||
*
|
||||
|
@ -10,7 +10,10 @@ import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class TimeUtilTest {
|
||||
|
||||
@ -319,4 +322,25 @@ public class TimeUtilTest {
|
||||
Assert.assertThrows(IllegalArgumentException.class, () -> TimeUtil.isIn(begin, null, end, false, false));
|
||||
Assert.assertThrows(IllegalArgumentException.class, () -> TimeUtil.isIn(begin, begin, null, false, false));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void formatDateFunctionTest() {
|
||||
List<String> dateStrList = Stream.of("2023-03-01", "2023-03-02")
|
||||
.map(LocalDate::parse)
|
||||
.map(TimeUtil.formatDateFunction(DatePattern.CHINESE_DATE_FORMATTER))
|
||||
.collect(Collectors.toList());
|
||||
Assert.assertEquals("2023年03月01日", dateStrList.get(0));
|
||||
Assert.assertEquals("2023年03月02日", dateStrList.get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void formatTimeFunctionTest() {
|
||||
List<String> dateStrList = Stream.of("2023-03-01T12:23:56", "2023-03-02T12:23:56")
|
||||
.map(LocalDateTime::parse)
|
||||
.map(TimeUtil.formatTimeFunction(DatePattern.CHINESE_DATE_FORMATTER))
|
||||
.collect(Collectors.toList());
|
||||
Assert.assertEquals("2023年03月01日", dateStrList.get(0));
|
||||
Assert.assertEquals("2023年03月02日", dateStrList.get(1));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user