fix #2354 add fe:formatDuration

This commit is contained in:
Shinsuke Sugaya 2020-01-02 14:24:44 +09:00
parent d1c8c55930
commit 71a18195fb
2 changed files with 18 additions and 0 deletions

View file

@ -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);

View file

@ -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.