Skip to content

Commit 1af87be

Browse files
vLuckyyyJakubk15
andauthored
GH-790 Fix duration format (#794)
* Fix duration format which return empty text instead of 0s * Refactor DurationUtil for formatting options * Refactor DurationUtil for formatting options * Fix duration formatter. * Move to static constant. * Update eternalcore-core/src/main/java/com/eternalcode/core/util/DurationUtil.java Co-authored-by: Jakubk15 <[email protected]> * Update eternalcore-core/src/main/java/com/eternalcode/core/util/DurationUtil.java Co-authored-by: Jakubk15 <[email protected]> * Update eternalcore-core/src/main/java/com/eternalcode/core/util/DurationUtil.java Co-authored-by: Jakubk15 <[email protected]> * Update eternalcore-core/src/main/java/com/eternalcode/core/util/DurationUtil.java Co-authored-by: Jakubk15 <[email protected]> * Update eternalcore-core/src/main/java/com/eternalcode/core/util/DurationUtil.java Co-authored-by: Jakubk15 <[email protected]> --------- Co-authored-by: Jakubk15 <[email protected]>
1 parent eaf5e78 commit 1af87be

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

eternalcore-core/src/main/java/com/eternalcode/core/util/DurationUtil.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,39 @@
77

88
public class DurationUtil {
99

10-
private static final TemporalAmountParser<Duration> WITHOUT_MILLS = new DurationParser()
10+
private static final TemporalAmountParser<Duration> WITHOUT_MILLIS_FORMAT = new DurationParser()
1111
.withUnit("s", ChronoUnit.SECONDS)
1212
.withUnit("m", ChronoUnit.MINUTES)
1313
.withUnit("h", ChronoUnit.HOURS)
1414
.withUnit("d", ChronoUnit.DAYS)
1515
.roundOff(ChronoUnit.MILLIS);
1616

17+
private static final TemporalAmountParser<Duration> STANDARD_FORMAT = new DurationParser()
18+
.withUnit("d", ChronoUnit.DAYS)
19+
.withUnit("h", ChronoUnit.HOURS)
20+
.withUnit("m", ChronoUnit.MINUTES)
21+
.withUnit("s", ChronoUnit.SECONDS)
22+
.withUnit("ms", ChronoUnit.MILLIS);
23+
24+
public static final Duration ONE_SECOND = Duration.ofSeconds(1);
25+
1726
public DurationUtil() {
1827
throw new UnsupportedOperationException("This class cannot be instantiated");
1928
}
2029

30+
public static String format(Duration duration, boolean removeMillis) {
31+
if (removeMillis) {
32+
return WITHOUT_MILLIS_FORMAT.format(duration);
33+
}
34+
35+
if (duration.toMillis() < ONE_SECOND.toMillis()) {
36+
return STANDARD_FORMAT.format(duration);
37+
}
38+
39+
return WITHOUT_MILLIS_FORMAT.format(duration);
40+
}
41+
2142
public static String format(Duration duration) {
22-
return WITHOUT_MILLS.format(duration);
43+
return format(duration, false);
2344
}
2445
}

0 commit comments

Comments
 (0)