以下是我的Freemarker代码,我用来解析日期并在友好日期显示它,如1小时前,昨天,上个月等。它工作正常,但当我将输出与实际结果进行比较时,它错误地解析了结果,即时间" 2014-06-19T22:07:33 + 00:00"应该显示 11h ago ,但它显示 2h前,我认为问题在于代码中的第三行,我需要传递时区你能帮我解决一下这个问题吗,我最后尝试了+ ZZ:ZZ,但它没有用。
<#include "relativeTime.ftl" />
<#assign time = "2014-06-19T22:07:33+00:00">
<#assign postTimeObject = time?datetime("yyyy-MM-dd'T'hh:mm:ss") /> //I think I need to pass the timezone, how?
<#assign postTimeString = relativeTime(postTimeObject) />
${postTimeString}
打印: 2小时前
答案 0 :(得分:0)
FreeMarker使用Java的标准日期格式化程序(http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html),因此您需要的模式为"yyyy-MM-dd'T'hh:mm:ssX"
。
(顺便说一下,该模板的方法有点可疑。你不能只使用Date
个对象,而不是将String
- s转换为Date
- s吗? )