Salesforce Apex:ISO时间戳格式函数

Salesforce Apex:ISO时间戳格式函数,salesforce,apex-code,Salesforce,Apex Code,我想知道是否有apex date或datetime函数将日期/时间格式化为ISO格式的时间戳“2007-04-05T12:30-02:00”,或者必须通过其他方式创建 谢谢。在Apex中,您可以使用DateTime格式(字符串数据格式)或格式(字符串数据格式,字符串时区)方法。它接受一个dataFormat字符串,该字符串对应于Java简单日期格式。您需要为ISO 8601定义正确的格式 此外,还要考虑DateTime的时区。在下面的示例中,我使用formatGMT来避免时区偏移 System.

我想知道是否有apex date或datetime函数将日期/时间格式化为ISO格式的时间戳“2007-04-05T12:30-02:00”,或者必须通过其他方式创建


谢谢。

在Apex中,您可以使用DateTime
格式(字符串数据格式)
格式(字符串数据格式,字符串时区)
方法。它接受一个dataFormat字符串,该字符串对应于Java简单日期格式。您需要为ISO 8601定义正确的格式

此外,还要考虑DateTime的时区。在下面的示例中,我使用formatGMT来避免时区偏移

System.debug(datetime.now().formatGMT('yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\''));
或者,您可以使用JSON序列化程序

System.debug(json.serialize(datetime.now()));

对于现在阅读本文的任何人,如果您想要时区,请使用Java
SimpleDataFormat
,您可以获得
+/-hh:mm
时区偏移值:

System.debug(datetime.now().format('yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX', 'America/Los_Angeles'));

Output: 2021-01-15T17:30:22.735-08:00

请注意
json.serialize()
:它似乎将返回的字符串用单引号括起来。请注意,您可以使用System.debug(datetime.now().format('yyyy-MM-dd'T'HH:MM:ss.SSSXXX','UTC');获取不带偏移量的UTC日期时间