我从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语句并将每个三个字母的月份分配给完整的月份名称,但它看起来不太好。任何建议/提示将不胜感激。感谢。
答案 0 :(得分:1)
它并不重要,MMM
将解析Mar
和March
。唯一重要的是要至少有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