如何在freemarker中获得当前时间?

2025-05-14 11:57:17
推荐回答(4个)
回答1:

1、打开eclipse IDE集成开发工具。

2、在菜单栏中选择Help菜单,在选择项中选择Install New Software 。

3、点击Add 按钮 Name:FreeMarker; Location:http://download.jboss.org/jbosstools/updates/development/indigo/ ,然后选择Add。

4、选择你要安装的文件(注意:如果只需要安装FreeMarker IDE,只需勾选  JBoss Application Development 文件夹 ),选择完后选择Next。

5、安装修复页面,这个页面仅针对eclipse IDE第一次安装插件才会显示。

6、等安装完成会询问你是否重启Eclipse IDE来应用你下载的插件,选择Restart Now;等Eclipse IDE后会弹出一个内容为:是否同JBoss团队通过eclipse统计信息的询问窗口,选择Yes即可。

回答2:

在freemarker中获取当前日期:${.now}
获取当前日期并比较:
<#if holdDate?date gt .now?date>
.........

另外,在自己使用的时候,遇到不能做大于等于(>=)或小于等于(<=)这种比较,如果要做等于(==)比较的话,可以这样:
<#if (content.holdDate)?string("yyyyMMdd") == .now?string("yyyyMMdd")>
......

?string("yyyyMMdd")的作用是把日期数据转成对应格式(yyyyMMdd)的字符串。

回答3:

2.3.17版本开始支持${.now}内置函数获取系统当前时间

回答4:

/**
* 根 据传入的日期时间格式,在页面上直接取得当前时间的格式化结果
* 如果格式为空或者错误,将返回yyyy-MM-dd HH:mm:ss
* 页面调用${datetime("yyyy")}/${datetime('yyyy')}
* @see com.yourcompany.ExtendedFreemarkerManager#createConfiguration
* @author Sunshine
*
*/
public class DatetimeMethod implements TemplateMethodModel {

private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";

@SuppressWarnings("unchecked")
public Object exec(List args) throws TemplateModelException {
Date date = new Date();
String pattern = args.get(0).toString();
try {
return new SimpleDateFormat(pattern).format(date);
} catch (RuntimeException e) {
return new SimpleDateFormat(DEFAULT_PATTERN).format(date);
}
}
}
四、页面调用

${datetime("yyyy年M月d日")}