Freemarker格式化时间

Freemarker的语法还是有点让人不舒服,写了个格式化时间的输出,找了好半天才写好,难受。
Snipaste_2018-12-29_10-44-19.png

References:

需求如上图所示,先给出成品代码,再说下过程。

<tr>
    <td >Trading Status:<br/>交易状态</td>
    <td>
        ${ status! } ${ ("(" + recResponseTime?string["MMM dd,yyyy"] + ")")! }
    </td>
</tr>

可以看到比较长,但是细细看还是能看懂的。
一步一步来,
取值
${ recResponseTime }
这个值是格式化时间,按照“MMM dd,yyyy”的格式展示时间,具体格式可以参考各种文档
${ recResponseTime?string["MMM dd,yyyy"] }
由于这个值可能为null,需要空值判断,如果值为null,展示也为空字符串。这一个判断需要注意,!是放在最外面的。
${ (recResponseTime?string["MMM dd,yyyy"])! }
外面包上括号
${ ("(" + recResponseTime?string["MMM dd,yyyy"] + ")")! }
其实本来到此就该结束了,但是展示的时间确是和区域(Locale)有关的。结果这里的月份就显示了中文,所以需要额外处理下区域的问题,可以在代码中设置(推荐),也可以直接在模板里指定,不推荐这么做,但我这里偷懒,直接在模板里写了,反正也没有其他的区域需求。
设置下Locale为英文
<#setting locale="en_US">
就可以展示需求的时间格式了。

标签: none

已有 2 条评论

  1. yxy yxy

    你个破站,找了好半天链接 ali-01.gif

  2. yxy yxy

    你个破站,找了好半天链接 ali-01.gif

添加新评论

ali-01.gifali-58.gifali-09.gifali-23.gifali-04.gifali-46.gifali-57.gifali-22.gifali-38.gifali-13.gifali-10.gifali-34.gifali-06.gifali-37.gifali-42.gifali-35.gifali-12.gifali-30.gifali-16.gifali-54.gifali-55.gifali-59.gif

加载中……