Apex da Salesforce: função do formato do Timestamp ISO

estava a pensar se existe uma função apex date ou datetime para formatar uma data / hora para a data / hora do tempo formatado ISO "2007-04-05T12:30-02:00" ou teria de ser criada por outro meio?

Obrigado.

Author: SalesforceQueries, 2013-08-31

2 answers

No Apex pode usar os métodos DateTime format(string dataFormat) ou format(string dataFormat, string timezone). Ele aceita uma string dataFormat, que corresponde a um formato de data Simples Java. Terá de definir o formato correcto para a norma ISO 8601.

Também, tenha em conta o fuso-horário do DateTime. No exemplo abaixo eu usei formatGMT para evitar o deslocamento do fuso-horário.

System.debug(datetime.now().formatGMT('yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\''));

Em alternativa, podes usar o serializador JSON.

System.debug(json.serialize(datetime.now()));
 16
Author: Daniel Ballinger, 2013-09-01 19:29:19

Para qualquer pessoa que leia isto agora, se quiser o fuso-horário, usando Java SimpleDateFormat, poderá obter o valor de deslocamento do +/-hh:mm do fuso-horário:

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
 0
Author: apps, 2021-01-15 23:04:17