我正在使用字符串模板创建电子邮件,但是当我打印出日期时,它会打印出完整的日期(例如,2010 年 4 月 28 日星期三 10:51:37 BST)。我想以 dd/mm/yyyy 格式打印出来,但不知道如何在 .st 文件中格式化。
我无法单独修改日期(使用 java 的 simpleDateFormatter),因为我遍历了带有日期的对象集合。
有没有办法格式化 .st 电子邮件模板中的日期?
最佳答案
像这样使用额外的渲染器:
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);
}
}
然后将其添加到您的 StringTemplate 中,例如:
var stg = new StringTemplateGroup("Templates", path);
stg.RegisterAttributeRenderer(typeof(DateTime), new AdvancedDateTimeRenderer());
然后在st文件中:
$YourDateVariable; format="dd/mm/yyyy"$
它应该可以工作
关于java - 在字符串模板电子邮件中格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2728623/