在datetime中添加时区

时间:2014-06-20 08:02:22

标签: jquery date freemarker

以下是我的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小时前

1 个答案:

答案 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吗? )