字符串模板电子邮件格式化日期

Ger*_*Ger 7 java email formatting date stringtemplate

我创建使用字符串模板的电子邮件,但是当我打印出一个日期,它打印出完整的日期(如周三4月28日10时51分37秒BST 2010).我想以dd/mm/yyyy格式打印出来,但不知道如何在.st文件中格式化它.

我不能单独修改日期(使用java的simpleDateFormatter),因为我迭代了带有日期的对象集合.

有没有办法格式化.st电子邮件模板中的日期?

小智 8

使用这样的其他渲染器:

internal class AdvancedDateTimeRenderer : IAttributeRenderer
{
    public string ToString(object o)
    {
        return ToString(o, null);
    }

    public string ToString(object o, string formatName)
    {
        if (o == null)
            return null;

        if (string.IsNullOrEmpty(formatName))
            return o.ToString();

        DateTime dt = Convert.ToDateTime(o);

        return string.Format("{0:" + formatName + "}", dt);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将其添加到StringTemplate中,例如:

var stg = new StringTemplateGroup("Templates", path);
stg.RegisterAttributeRenderer(typeof(DateTime), new AdvancedDateTimeRenderer());
Run Code Online (Sandbox Code Playgroud)

然后在st文件中:

$YourDateVariable; format="dd/mm/yyyy"$
Run Code Online (Sandbox Code Playgroud)

它应该工作