Freemarker中的日期转换

1. 把数字类型表示的日期,转换成datetime类型,字符串输出。
${item.time?number_to_datetime},默认的格式是“yyyy-MM-dd hh:mm:ss”。

在调用之前,可以手动设置datetime的格式,如: <#setting datetime_format="yyyy年MM月dd日"/>

2.把date类型表示的日期,转换成字符串格式,字符串输出。
${item.time?string("yyyy年MM月dd日")}



3.如果item.time为null,Freemarker会报错,比较烦人。
于是,我写了个通用的日期工具函数:

<#function number_to_ymdhms date>

 <#if date != null>

   <#setting datetime_format="yyyy-MM-dd hh:mm:ss"/>

    <#return date?number_to_datetime/>

 </#if>

 <#return ""/>

</#function>

<#function date_to_ymdhms date>

 <#if date != null>

    <#return date?string('yyyy-MM-dd hh:mm:ss')/>

 </#if>

 <#return ""/>

</#function>

引入方式:<#include "/user/common/function/date.ftl"/>
调用方式: ${number_to_ymdhms(item.addtime)}
 
好处是,日期处理统一到一个地方,格式统一。如果不需要统一的,就需要再写一个带格式的函数了。
null需要判断,防止报错:空异常。 


原文首发:http://fansunion.cn/article/detail/531.html

原文地址:https://www.cnblogs.com/qitian1/p/6463095.html