如何在Freemarker模板或javascript中以特定格式转换日期

rak*_*esh 6 javascript freemarker date

从json,我得到的价值

"createdOn": "Jan 08 2015 20:40:56 GMT+0530 (IST)",
Run Code Online (Sandbox Code Playgroud)

我正在访问FTL

<#list variables as variable>
  <div class="reply">
   ${variable.createdOn}
  </div>
</#list>
Run Code Online (Sandbox Code Playgroud)

我得到的结果是

Jan 09 2015 12:36:18 GMT+0530 (IST)
Run Code Online (Sandbox Code Playgroud)

我更喜欢的格式是 09-01-2015

我需要删除剩余的时间GMT,IST等.

如何在Freemarker模板或javascript中转换它.

更新

我试着像这样传递下面

${variable.createdOn?datetime?string("dd-MM-yyyy")}
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

Exception: java.text.ParseException - Unparseable date: "Jan 09 2015 12:36:18 GMT+0530 (IST)"
Run Code Online (Sandbox Code Playgroud)

任何帮助都是赞赏的.

谢谢

dde*_*any 15

首先,那是什么格式?我的意思是,如果你可以影响某人使用标准格式(主要是ISO),这将有助于每个人.无论如何,FreeMarker不是一个日期解析器库,但实际上你可以这样做:

<#-- Settings you need -->
<#setting date_format="dd-MM-yyyy">
<#setting locale="en_US">

<#-- The string that comes from somewhere: -->
<#assign createdOn = 'Jan 08 2015 20:40:56 GMT+0530 (IST)'>

<#--
  1. Tell FreeMarker to convert string to real date-time value
  2. Convert date-time value to date-only value
  3. Let FreeMarker format it according the date_format setting
-->
${createdOn?datetime("MMM dd yyyy HH:mm:ss 'GMT'Z")?date}
Run Code Online (Sandbox Code Playgroud)


Ber*_*eri 9

你试过这个吗?

"${variable.createdOn?datetime?string('dd-MM-yyyy')}"
Run Code Online (Sandbox Code Playgroud)

以下是文档链接:http://freemarker.org/docs/ref_builtins_date.html