You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Salesforce Apex类中修改创建日期的输出显示格式

Apex 自定义日期显示格式实现方案

Apex 原生提供了DateTime.format()方法可以直接定制日期时间的输出格式,不需要手动拆分时间字段拼接字符串。

你当前直接拼接CreatedDate字段时,系统默认会输出ISO 8601标准的UTC时间字符串,也就是你看到的带T、Z标识的时间戳格式。要匹配你需要的邮件风格时间格式,直接传入对应格式模式串调用format方法即可,修改后的代码如下:

for(Integer i = 0; i < emailMessages.size(); i++){
    DateTime createTime = emailMessages[i].CreatedDate;
    // 格式串匹配:星期缩写, 月份缩写 日期, 年份 at 12小时制时间 AM/PM
    String formattedTime = createTime.format('E, MMM d, yyyy \'at\' h:mm a');
    replyBody += 'On ' + formattedTime + ' ' + emailMessages[i].From_Name__c + ' responded: ';
}

注意事项

  • 格式模式规则和Java SimpleDateFormat对齐:E代表星期缩写、MMM代表月份缩写、d代表当月日期、yyyy代表四位年份、h代表12小时制小时、mm代表分钟、a代表AM/PM标识。
  • 单参数的format()方法会默认取当前登录用户的时区做时间转换,如果需要固定时区输出(比如统一按业务指定时区展示,避免不同用户看到的时间不一致),可以传入第二个IANA标准时区ID参数,例:createTime.format('E, MMM d, yyyy \'at\' h:mm a', 'Asia/Shanghai')就会固定按东八区时间格式化。
  • 如果格式化后时间和预期差几个小时,优先检查时区参数是否符合业务要求,不要手动加减时间戳做偏移,避免夏令时等场景出错。

调整后输出的内容就会匹配你预期的样式:

On Thu, Jun 30, 2022 at 4:26 PM Sarah Kat responded:

内容的提问来源于stack exchange,提问作者shwarma g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 01:21:34