diff --git a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java index a609a07474944d787abb25d353fb5e7bc3d73b53..d04c5ddf0efc21b828661f47e493c1a58025f31c 100644 --- a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java +++ b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java @@ -44,6 +44,7 @@ import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.time.DurationFormatUtils; import org.apache.commons.text.StringEscapeUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -163,6 +164,11 @@ public class FessFunctions { return date.format(DateTimeFormatter.ofPattern(Constants.ISO_DATETIME_FORMAT, Locale.ROOT)); } + public static String formatDuration(final long durationMillis) { + return DurationFormatUtils.formatDuration(durationMillis, "d 'days' HH:mm:ss.SSS").replace("0 days", StringUtil.EMPTY).trim(); + + } + public static String formatNumber(final long value, final String pattern) { final DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(getUserLocale()); df.applyPattern(pattern); diff --git a/src/main/webapp/WEB-INF/fe.tld b/src/main/webapp/WEB-INF/fe.tld index e8c7bb6591684f1fcae833c1dfa46854ecbe108a..9f8c3a8f50b6480fc691f7b7d9117c4ef744f88a 100644 --- a/src/main/webapp/WEB-INF/fe.tld +++ b/src/main/webapp/WEB-INF/fe.tld @@ -71,6 +71,18 @@ </example> </function> + <function> + <description> + Returns formatted duration from a given value. + </description> + <name>formatDuration</name> + <function-class>org.codelibs.fess.taglib.FessFunctions</function-class> + <function-signature>java.lang.String formatDuration(long)</function-signature> + <example> + ${fe:formatDuration(1234)} + </example> + </function> + <function> <description> Returns formatted number as a file size from a given value.