如何格式化CRM"仅限日期"字段与Freemarker字符串?

时间:2017-04-10 13:25:26

标签: freemarker dynamics-crm-2013 clickdimension

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

这是通过Freemarker完成的,我尝试了以下内容:

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

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

1 个答案:

答案 0 :(得分:2)

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

?time FreeMarker应该抛出异常并说出字符串不符合预期模式的情况。我怀疑你使用的框架捕获并抑制了异常(这使得使用FreeMarker变得更加困难)。检查日志,也许就在那里。

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

在打印日期时,?string.full应该有效,但通常您应该将date_format全局设置为您喜欢的格式,然后您只需编写${x}

(另请注意,上面不需要#assign,因为您可以在${}内放置任意复杂的表达式。)