diff --git a/CHANGELOG.md b/CHANGELOG.md index bafce5c44..e43a252bd 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * 【core 】 CollUtil.subtract增加空判定(issue#3605@Github) * 【core 】 优化DateUtil.format(Date date, String format)接口效率(pr#1226@Gitee) * 【csv 】 CsvWriter.writeBeans增加重载,可选是否写出表头(issue#IA57W2@Gitee) +* 【core 】 BetweenFormatter支持自定义设置单位(pr#1228@Gitee) ### 🐞Bug修复 * 【core 】 修复AnnotationUtil可能的空指针错误 diff --git a/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormatter.java b/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormatter.java index 2421b0946..5d8b138e5 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormatter.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormatter.java @@ -19,10 +19,6 @@ import java.util.function.Function; public class BetweenFormatter implements Serializable { private static final long serialVersionUID = 1L; - /** - * 单位格式化器 - */ - public static Function DEFAULT_LEVEL_FORMATTER = (level) -> level.name; /** * 时长毫秒数 */ @@ -38,7 +34,7 @@ public class BetweenFormatter implements Serializable { /** * 格式化器 */ - private Function levelFormatter = DEFAULT_LEVEL_FORMATTER; + private Function levelFormatter = Level::getName; /** * 分隔符 */ @@ -86,7 +82,7 @@ public class BetweenFormatter implements Serializable { final int level = this.level.ordinal(); int levelCount = 0; - if (isLevelCountValid(levelCount) && 0 != day && level >= Level.DAY.ordinal()) { + if (isLevelCountValid(levelCount) && day > 0) { sb.append(day).append(levelFormatter.apply(Level.DAY)).append(separator); levelCount++; } @@ -172,7 +168,7 @@ public class BetweenFormatter implements Serializable { * @return this */ public BetweenFormatter setSeparator(String separator) { - this.separator = separator == null ? StrUtil.EMPTY : separator; + this.separator = StrUtil.nullToEmpty(separator); return this; }