You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Freemarker中格式化Java Duration对象?能否复用已有格式化方法?

复用Java静态方法格式化Freemarker中的Duration对象

完全可以复用你已有的这个Java静态格式化方法,具体操作分两步:

1. 将包含静态方法的类注入Freemarker模板上下文

假设你的静态方法位于com.yourpackage.YourFormatterClass类中,在准备模板渲染数据时,把这个类作为变量传入模板模型:

Map<String, Object> templateModel = new HashMap<>();
templateModel.put("DurationFormatUtil", com.yourpackage.YourFormatterClass.class);
// 后续使用该模型渲染Freemarker模板

2. 在Freemarker模板中调用静态方法

修改你原来的模板代码,直接通过注入的类调用静态方法格式化Duration对象:

<Duration>${DurationFormatUtil.format(duration)}</Duration>

可选优化:给类起短别名

如果觉得类名太长,注入时可以指定一个更简洁的别名:

templateModel.put("durFmt", com.yourpackage.YourFormatterClass.class);

模板中对应修改为:

<Duration>${durFmt.format(duration)}</Duration>

这样就能直接复用你已有的格式化逻辑,输出符合hh:mm:ss(或带毫秒)格式的结果,替代默认的PT30S这类标准Duration字符串。

内容的提问来源于stack exchange,提问作者John Mercier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:52:15