0

我正在尝试使用 CRM 2013 中的 Freemarker/Clickdimensions 插件构建电子邮件模板。我在实体上有一个“仅限日期”字段,例如包含日期 2017-04-17。我希望此日期显示如下:4 月 17 日星期一。

这是使用 Freemarker 完成的,我尝试了以下方法:

<#assign x  = Recipient.field_booking.field_scheduleddate?time>
${x?string.full}

这似乎不起作用。我根本没有得到任何结果,只是一个空行。有谁知道可能出了什么问题?

4

1 回答 1

2

我将假设这field_scheduleddate是一个字符串(不是 a java.util.Date)。

?timeFreeMarker 应该抛出和异常说类似的字符串不遵循预期的模式。我怀疑您使用的框架会捕获并抑制该异常(这使得使用 FreeMarker 变得更加困难)。检查日志,也许它在那里。

您想在那里处理仅日期值,因此您应该使用?date,就像?time仅时间值一样。此外,field_scheduleddate显然使用 ISO 8601 格式,因此除非date_format配置设置设置为 ISO,否则您必须使用?date.iso(自 FreeMarker 2.3.21 起支持)。

在打印日期时,?string.full应该可以工作,但通常您应该将date_format全局设置为您喜欢的格式,然后您可以简单地编写${x}.

(还要注意#assign上面没有必要,因为你可以在里面放任意复杂的表达式${}。)

于 2017-04-10T17:03:48.417 回答