From 71a18195fb14087601d9bea44120f6253899b59a Mon Sep 17 00:00:00 2001 From: Shinsuke Sugaya <shinsuke@apache.org> Date: Thu, 2 Jan 2020 14:24:44 +0900 Subject: [PATCH] fix #2354 add fe:formatDuration --- .../java/org/codelibs/fess/taglib/FessFunctions.java | 6 ++++++ src/main/webapp/WEB-INF/fe.tld | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java index a609a0747..d04c5ddf0 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 e8c7bb659..9f8c3a8f5 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. -- GitLab