如何更改freemarker日期值?

时间:2015-03-02 21:08:00

标签: date freemarker

我从XML获取{item.pubDate},其值为: 星期一,2015年3月2日14:35:47 +0000

所以我这样做了:

<#assign starting_point = item.pubDate?index_of(",")>
<#assign date="${item.pubDate?substring(starting_point + 1)}" />
${date?datetime("dd MMM yyyy hh:mm:ss z")?date}<br>

结果是:2015年3月2日。

我的问题是,我们可以将价值从3月改为3月,如果可以,那么最好的方法是什么?我可以在freemarker中使用if / elseif语句并将每个三个字母的月份分配给完整的月份名称,但它看起来不太好。任何建议/提示将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

它并不重要,MMM将解析MarMarch。唯一重要的是要至少有3 M - s,http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html说:

  

如果模式字母的数量为3或更多,则将月份解释为文本;否则,它被解释为数字。

答案 1 :(得分:0)

是的,FreeMarker遵循与Java相同的日期时间格式规则。使用内置的?string作为日期。你可以这样做:

${date?datetime("dd MMM yyyy hh:mm:ss z")?string("MMMM dd, yyyy")}

来源:http://freemarker.org/docs/ref_builtins_date.html#ref_builtin_string_for_date