Apex 中的字符串格式

问题描述

我必须将字符串 day='11/22/1999' 格式化为 '2020-11-26T00:00:00-05:00' 这个字符串格式,认时间值在顶点中为 0。请让我知道是否有人为此工作过。

解决方法

这将在运行用户的时区输出。

System.debug(formatDate('11/22/1999')); //1999-11-22T00:00:00-05:00

String formatDate(String dateString) {
    Date d = Date.parse(dateString);
    Datetime dt = Datetime.newInstance(d.year(),d.month(),d.day(),0);
    return dt.format('yyyy-MM-dd\'T\'HH:mm:ssXXX');
}
  1. Date.parse() 将根据您的字符串创建一个日期。
  2. 根据该日期,您可以使用 Datetime.newInstance() 创建日期时间,同时还可以将您所在地区的时间清零。
  3. 使用 Datetime.format() 生成所需的格式化字符串。 (倒数第二个 formatting example 与您想要的非常接近。)