转换日期 Freemarker
Converting Dates Freemarker
我正在尝试使以下内容正常工作,但无法显示正确的值。
假设 SHIPPING_DATE 被视为值为 2016/05/23 的字符串:
<#setting date_format="MM/dd/yyyy">
<#setting locale="en_US">
<#assign ship_date>${SHIPPING_DATE}</#assign>
${ship_date?date("MM/dd/yyyy")}
输出是 12/05/0190 但我期待 05/23/2016。请有人帮忙解释一下我做错了什么吗?
如果您在 ship_date
中有一个 字符串,例如 2016/05/23
,那么您可以使用 ship_date?date("yyyy/MM/dd")
将其解析为实际日期值。请注意,它不是您示例中的 MM/dd/yyyy
。 ?date
表示 "convert to date",您指定它如何解释字符串。然后,当您使用 ${...}
打印一个真实的日期值(不是字符串)时,它将根据 data_format
配置设置转换为字符串,因此 MM/dd/yyyy
会很好。获取实际日期值的方式并不重要(例如使用 string?date(format)
或直接从数据模型获取)。
template.ftl
<#list listaCategoria as c>
<tr>
<td> ${c.dataCadastro?datetime("yyyy-MM-dd")?string("dd/MM/yyyy")}</td>
</tr>
</#list>
RelatorioService.java
LocalDate dataCadastro = LocalDate.of(1995, 12, 7);
结果:
07/12/1995
我正在尝试使以下内容正常工作,但无法显示正确的值。
假设 SHIPPING_DATE 被视为值为 2016/05/23 的字符串:
<#setting date_format="MM/dd/yyyy">
<#setting locale="en_US">
<#assign ship_date>${SHIPPING_DATE}</#assign>
${ship_date?date("MM/dd/yyyy")}
输出是 12/05/0190 但我期待 05/23/2016。请有人帮忙解释一下我做错了什么吗?
如果您在 ship_date
中有一个 字符串,例如 2016/05/23
,那么您可以使用 ship_date?date("yyyy/MM/dd")
将其解析为实际日期值。请注意,它不是您示例中的 MM/dd/yyyy
。 ?date
表示 "convert to date",您指定它如何解释字符串。然后,当您使用 ${...}
打印一个真实的日期值(不是字符串)时,它将根据 data_format
配置设置转换为字符串,因此 MM/dd/yyyy
会很好。获取实际日期值的方式并不重要(例如使用 string?date(format)
或直接从数据模型获取)。
template.ftl
<#list listaCategoria as c>
<tr>
<td> ${c.dataCadastro?datetime("yyyy-MM-dd")?string("dd/MM/yyyy")}</td>
</tr>
</#list>
RelatorioService.java
LocalDate dataCadastro = LocalDate.of(1995, 12, 7);
结果:
07/12/1995