java - 在字符串模板电子邮件中格式化日期

标签 java email date formatting stringtemplate

我正在使用字符串模板创建电子邮件,但是当我打印出日期时,它会打印出完整的日期(例如,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/

相关文章:

ios - 如何对从服务器获取的数据进行排序

java - 为什么我只能用这种方式初始化?

java - 如何从 ArrayList 复制对象并在 HashMap 中按 int 大小对它们进行排序?

ios - 从 Gmail 帐户中获取所有电子邮件

facebook - 如何获取 Facebook 好友列表电子邮件地址?

javascript - 尝试创建带有 future 日期的 Javascript 时钟

java - 如何从 UIAutomation(在 Xcode 7 上)转移到 XCUITest(在 Xcode 8 上)

java - java Applet 有哪些限制?

php - Swiftmailer 目的地 mysql

javascript - 添加 30 天至今 (mm/dd/yy)