Pular para o conteúdo principal

Format

Descrição

A função Format aplica formatação a uma string, transformando-a em datas, moedas, números, percentuais e outros formatos. É uma das funções mais versáteis do AMPscript - com ela você consegue exibir valores monetários em Real (R$), datas no padrão brasileiro (DD/MM/AAAA) e números com separadores de milhar e decimal corretos para o Brasil. Retorna a string formatada conforme o padrão e o código de cultura especificados.

Sintaxe

Format(stringToFormat, outputFormat [, dataFormat] [, cultureCode])

Parâmetros

ParâmetroTipoObrigatórioDescrição
stringToFormatstringSimA string à qual as regras de formatação serão aplicadas.
outputFormatstringSimString de formato compatível com C# a ser aplicada ao valor.
dataFormatstringNãoO tipo de dado da string. Valores aceitos: Date ou Number.
cultureCodestringNãoCódigo de cultura para aplicar à formatação (ex: pt-BR, en-US).

Códigos de formato numérico

CódigoFormato de saída
CMoeda (Currency)
DDecimal
ENotação científica
FPonto fixo (Fixed-point)
GGeral
NNúmero
PPercentual

Elementos de formato de data personalizado

ElementoDescriçãoExemplo (para 05/08/2024 20:00:05 -06:00)
yAno sem zero à esquerda24
yyAno com dois dígitos24
yyy / yyyyAno completo2024
MMês sem zero à esquerda8
MMMês com zero à esquerda08
MMMMês abreviadoAug
MMMMMês por extensoAugust
dDia sem zero à esquerda5
ddDia com zero à esquerda05
dddDia da semana abreviadoMon
ddddDia da semana por extensoMonday
hHora (12h) sem zero8
hhHora (12h) com zero08
HHora (24h) sem zero8
HHHora (24h) com zero20
mMinuto sem zero0
mmMinuto com zero00
sSegundo sem zero5
ssSegundo com zero05
tAM/PM abreviadoP
ttAM/PM completoPM
zOffset UTC sem zero-6
zzOffset UTC com zero-06
zzzOffset UTC completo-06:00

Exemplo básico

Formatando um valor de pedido como moeda brasileira (Real) para um e-mail transacional da MegaStore:

%%[
SET @valorPedido = "1299.90"
SET @valorFormatado = Format(@valorPedido, "C", "Number", "pt-BR")
]%%

Valor do seu pedido: %%=v(@valorFormatado)=%%

Saída:

Valor do seu pedido: R$ 1.299,90

Exemplo avançado

E-mail de confirmação de compra da Lojas Vitória, combinando formatação de data no padrão brasileiro, valor monetário e percentual de desconto:

%%[
SET @nomeCliente = "João Silva"
SET @dataCompra = Now()
SET @valorOriginal = "2499.90"
SET @desconto = "0.15"

/* Data no padrão brasileiro com dia da semana por extenso */
SET @dataFormatada = Format(@dataCompra, "dddd, dd/MM/yyyy", "Date", "pt-BR")

/* Horário da compra */
SET @horaFormatada = Format(@dataCompra, "HH:mm", "Date", "pt-BR")

/* Valor em Real */
SET @valorFormatado = Format(@valorOriginal, "C", "Number", "pt-BR")

/* Percentual de desconto */
SET @descontoFormatado = Format(@desconto, "P", "Number", "pt-BR")

/* Calculando valor final */
SET @valorFinal = Subtract(@valorOriginal, Multiply(@valorOriginal, @desconto))
SET @valorFinalFormatado = Format(@valorFinal, "C", "Number", "pt-BR")

/* Número do pedido formatado com zeros à esquerda */
SET @numeroPedido = "4587"
SET @pedidoFormatado = Format(@numeroPedido, "D8", "Number")
]%%

Olá, %%=v(@nomeCliente)=%%!

Compra realizada em %%=v(@dataFormatada)=%% às %%=v(@horaFormatada)=%%
Pedido nº %%=v(@pedidoFormatado)=%%

Valor original: %%=v(@valorFormatado)=%%
Desconto aplicado: %%=v(@descontoFormatado)=%%
Valor final: %%=v(@valorFinalFormatado)=%%

Saída:

Olá, João Silva!

Compra realizada em segunda-feira, 14/07/2025 às 10:35
Pedido nº 00004587

Valor original: R$ 2.499,90
Desconto aplicado: 15,00%
Valor final: R$ 2.124,92

Observações

  • O parâmetro cultureCode é essencial para o mercado brasileiro. Sem usar "pt-BR", valores monetários virão com $ em vez de R$, e os separadores de milhar/decimal ficarão no padrão americano (vírgula para milhar, ponto para decimal).

  • Os formatos de data personalizados (dd/MM/yyyy, dddd, MMMM etc.) combinados com o culture code "pt-BR" retornam nomes de meses e dias da semana em português (ex: "segunda-feira", "julho").

💡 Dica: Para exibir datas no padrão brasileiro, use "dd/MM/yyyy" - com MM maiúsculo para mês. Se usar mm minúsculo, vai trazer minutos em vez de mês. Esse é um erro clássico.

💡 Dica: O formato "C" (Currency) com culture code "pt-BR" já cuida de tudo: símbolo R$, separador de milhar com ponto e decimal com vírgula. É mais prático do que montar a formatação manualmente com Concat.

⚠️ Atenção: O parâmetro dataFormat aceita apenas Date ou Number. Se você passar um valor numérico sem especificar "Number" como dataFormat, o formato pode não ser aplicado corretamente.

💡 Dica: Quando precisar apenas formatar moeda de forma simples, considere também a função FormatCurrency. Já para formatação numérica básica, veja FormatNumber. A Format é mais poderosa porque aceita culture codes e padrões personalizados.

Funções relacionadas

  • FormatCurrency - formatação simplificada de valores monetários
  • FormatNumber - formatação simplificada de números
  • FormatDate - formatação específica para datas
  • Now - retorna a data/hora atual do sistema
  • Concat - concatenação de strings para montar saídas compostas
  • Replace - substituição de caracteres em strings