diff --git a/CHANGELOG.md b/CHANGELOG.md index 56bc60a93..f34d6b12d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * 【core 】 DateUtil增加formatChineseDate(pr#932@Github) * 【core 】 ArrayUtil.isEmpty修改逻辑(pr#948@Github) * 【core 】 增强StrUtil中空判断后返回数据性能(pr#949@Github) +* 【core 】 deprecate掉millsecond,改为millisecond(issue#I1M9P8@Github) ### Bug修复 * 【core 】 修复NumberUtil.partValue有余数问题(issue#I1KX66@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java b/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java index 97ef404e1..bd83e1adf 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java @@ -1,37 +1,45 @@ package cn.hutool.core.date; -import java.io.Serializable; - import cn.hutool.core.util.StrUtil; +import java.io.Serializable; + /** * 时长格式化器 - * @author Looly * + * @author Looly */ -public class BetweenFormater implements Serializable{ +public class BetweenFormater implements Serializable { private static final long serialVersionUID = 1L; - - /** 时长毫秒数 */ + + /** + * 时长毫秒数 + */ private long betweenMs; - /** 格式化级别 */ + /** + * 格式化级别 + */ private Level level; - /** 格式化级别的最大个数 */ + /** + * 格式化级别的最大个数 + */ private final int levelMaxCount; - + /** * 构造 + * * @param betweenMs 日期间隔 - * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别 + * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别 */ public BetweenFormater(long betweenMs, Level level) { this(betweenMs, level, 0); } - + /** * 构造 - * @param betweenMs 日期间隔 - * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别 + * + * @param betweenMs 日期间隔 + * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别 * @param levelMaxCount 格式化级别的最大个数,假如级别个数为1,但是级别到秒,那只显示一个级别 */ public BetweenFormater(long betweenMs, Level level, int levelMaxCount) { @@ -39,15 +47,15 @@ public class BetweenFormater implements Serializable{ this.level = level; this.levelMaxCount = levelMaxCount; } - + /** * 格式化日期间隔输出
- * + * * @return 格式化后的字符串 */ - public String format(){ + public String format() { final StringBuilder sb = new StringBuilder(); - if(betweenMs > 0){ + if (betweenMs > 0) { long day = betweenMs / DateUnit.DAY.getMillis(); long hour = betweenMs / DateUnit.HOUR.getMillis() - day * 24; long minute = betweenMs / DateUnit.MINUTE.getMillis() - day * 24 * 60 - hour * 60; @@ -55,41 +63,42 @@ public class BetweenFormater implements Serializable{ final long BetweenOfSecond = ((day * 24 + hour) * 60 + minute) * 60; long second = betweenMs / DateUnit.SECOND.getMillis() - BetweenOfSecond; long millisecond = betweenMs - (BetweenOfSecond + second) * 1000; - + final int level = this.level.ordinal(); int levelCount = 0; - - if(isLevelCountValid(levelCount) && 0 != day && level >= Level.DAY.ordinal()){ + + if (isLevelCountValid(levelCount) && 0 != day && level >= Level.DAY.ordinal()) { sb.append(day).append(Level.DAY.name); levelCount++; } - if(isLevelCountValid(levelCount) && 0 != hour && level >= Level.HOUR.ordinal()){ + if (isLevelCountValid(levelCount) && 0 != hour && level >= Level.HOUR.ordinal()) { sb.append(hour).append(Level.HOUR.name); levelCount++; } - if(isLevelCountValid(levelCount) && 0 != minute && level >= Level.MINUTE.ordinal()){ + if (isLevelCountValid(levelCount) && 0 != minute && level >= Level.MINUTE.ordinal()) { sb.append(minute).append(Level.MINUTE.name); levelCount++; } - if(isLevelCountValid(levelCount) && 0 != second && level >= Level.SECOND.ordinal()){ + if (isLevelCountValid(levelCount) && 0 != second && level >= Level.SECOND.ordinal()) { sb.append(second).append(Level.SECOND.name); levelCount++; } - if(isLevelCountValid(levelCount) && 0 != millisecond && level >= Level.MILLSECOND.ordinal()){ - sb.append(millisecond).append(Level.MILLSECOND.name); + if (isLevelCountValid(levelCount) && 0 != millisecond && level >= Level.MILLISECOND.ordinal()) { + sb.append(millisecond).append(Level.MILLISECOND.name); // levelCount++; } } - - if(StrUtil.isEmpty(sb)) { + + if (StrUtil.isEmpty(sb)) { sb.append(0).append(this.level.name); } - + return sb.toString(); } - + /** * 获得 时长毫秒数 + * * @return 时长毫秒数 */ public long getBetweenMs() { @@ -98,6 +107,7 @@ public class BetweenFormater implements Serializable{ /** * 设置 时长毫秒数 + * * @param betweenMs 时长毫秒数 */ public void setBetweenMs(long betweenMs) { @@ -106,6 +116,7 @@ public class BetweenFormater implements Serializable{ /** * 获得 格式化级别 + * * @return 格式化级别 */ public Level getLevel() { @@ -114,35 +125,55 @@ public class BetweenFormater implements Serializable{ /** * 设置格式化级别 + * * @param level 格式化级别 */ public void setLevel(Level level) { this.level = level; } - + /** * 格式化等级枚举 - * + * * @author Looly */ public enum Level { - /** 天 */ + /** + * 天 + */ DAY("天"), - /** 小时 */ + /** + * 小时 + */ HOUR("小时"), - /** 分钟 */ + /** + * 分钟 + */ MINUTE("分"), - /** 秒 */ + /** + * 秒 + */ SECOND("秒"), - /** 毫秒 */ - MILLSECOND("毫秒"); + /** + * 毫秒 + * @deprecated 拼写错误,请使用{@link #MILLISECOND} + */ + @Deprecated + MILLSECOND("毫秒"), + /** + * 毫秒 + */ + MILLISECOND("毫秒"); - /** 级别名称 */ + /** + * 级别名称 + */ private final String name; /** * 构造 + * * @param name 级别名称 */ Level(String name) { @@ -151,26 +182,27 @@ public class BetweenFormater implements Serializable{ /** * 获取级别名称 + * * @return 级别名称 */ public String getName() { return this.name; } } - + @Override public String toString() { return format(); } - + /** * 等级数量是否有效
* 有效的定义是:levelMaxCount大于0(被设置),当前等级数量没有超过这个最大值 - * + * * @param levelCount 登记数量 * @return 是否有效 */ - private boolean isLevelCountValid(int levelCount){ + private boolean isLevelCountValid(int levelCount) { return this.levelMaxCount <= 0 || levelCount < this.levelMaxCount; } } diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateBetween.java b/hutool-core/src/main/java/cn/hutool/core/date/DateBetween.java index 47c01fe3f..a190f5131 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateBetween.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateBetween.java @@ -165,6 +165,6 @@ public class DateBetween implements Serializable{ @Override public String toString() { - return toString(BetweenFormater.Level.MILLSECOND); + return toString(BetweenFormater.Level.MILLISECOND); } } diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java b/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java index aefb3c538..47b93f7e3 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java @@ -525,6 +525,17 @@ public class DateTime extends Date { * * @return 毫秒数 */ + public int millisecond() { + return getField(DateField.MILLISECOND); + } + + /** + * 获得指定日期的毫秒数部分
+ * + * @return 毫秒数 + * @deprecated 拼写错误,请使用{@link #millisecond()} + */ + @Deprecated public int millsecond() { return getField(DateField.MILLISECOND); } 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 bfa3e90c3..4e49267c1 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 @@ -321,9 +321,21 @@ public class DateUtil extends CalendarUtil { * * @param date 日期 * @return 毫秒数 + * @deprecated 拼写错误,请使用{@link #millisecond(Date)} */ + @Deprecated public static int millsecond(Date date) { - return DateTime.of(date).millsecond(); + return DateTime.of(date).millisecond(); + } + + /** + * 获得指定日期的毫秒数部分
+ * + * @param date 日期 + * @return 毫秒数 + */ + public static int millisecond(Date date) { + return DateTime.of(date).millisecond(); } /** @@ -426,9 +438,18 @@ public class DateUtil extends CalendarUtil { /** * @return 当前日期的毫秒数部分
+ * @deprecated 拼写错误,请使用{@link #thisMillisecond()} */ + @Deprecated public static int thisMillsecond() { - return millsecond(date()); + return millisecond(date()); + } + + /** + * @return 当前日期的毫秒数部分
+ */ + public static int thisMillisecond() { + return millisecond(date()); } // -------------------------------------------------------------- Part of Date end @@ -1398,7 +1419,7 @@ public class DateUtil extends CalendarUtil { * @since 3.0.1 */ public static String formatBetween(long betweenMs) { - return new BetweenFormater(betweenMs, BetweenFormater.Level.MILLSECOND).format(); + return new BetweenFormater(betweenMs, BetweenFormater.Level.MILLISECOND).format(); } /** diff --git a/hutool-core/src/test/java/cn/hutool/core/date/BetweenFormaterTest.java b/hutool-core/src/test/java/cn/hutool/core/date/BetweenFormaterTest.java index 33d57b673..9b43ec3fe 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/BetweenFormaterTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/BetweenFormaterTest.java @@ -10,7 +10,7 @@ public class BetweenFormaterTest { @Test public void formatTest(){ long betweenMs = DateUtil.betweenMs(DateUtil.parse("2017-01-01 22:59:59"), DateUtil.parse("2017-01-02 23:59:58")); - BetweenFormater formater = new BetweenFormater(betweenMs, Level.MILLSECOND, 1); + BetweenFormater formater = new BetweenFormater(betweenMs, Level.MILLISECOND, 1); Assert.assertEquals(formater.toString(), "1天"); }