Funções de data e hora date-time
As funções de data e hora são usadas para executar operações de data e hora em valores dentro do Journey Optimizer.
now() não está disponível no editor de personalização. Use getCurrentZonedDateTime() ou currentTimeInMillis() como alternativa para os valores atuais de data/hora. Saiba maisAdicionar dias add-days
A função addDays ajusta uma determinada data por um número especificado de dias, usando valores positivos para incrementar e valores negativos para decrementar.
Sintaxe
{%= addDays(date, number) %}
- Entrada:
{%= addDays(stringToDate("2024-11-01T17:19:51Z"),10) %} - Saída:
2024-11-11T17:19:51Z
Adicionar Horas add-hours
A função addHours ajusta uma determinada data por um número especificado de horas, usando valores positivos para incrementar e valores negativos para decrementar.
Sintaxe
{%= addHours(date, number) %}
- Entrada:
{%= addHours(stringToDate("2024-11-01T17:19:51Z"),1) %} - Saída:
2024-11-01T18:19:51Z
Adicionar Minutos add-minutes
A função addMinutes ajusta uma determinada data por um número especificado de minutos, usando valores positivos para incrementar e valores negativos para decrementar.
Sintaxe
{%= addMinutes(date, number) %}
- Entrada:
{%= addMinutes(stringToDate("2024-11-01T17:59:51Z"),10) %} - Saída:
2024-11-01T18:09:51Z
Adicionar meses add-months
A função addMonths ajusta uma determinada data por um número especificado de meses, usando valores positivos para incrementar e valores negativos para decrementar.
Sintaxe
{%= addMonths(date, number) %}
- Entrada:
{%= addMonths(stringToDate("2024-11-01T17:19:51Z"),2) %} - Saída:
2025-01-01T17:19:51Z
Adicionar segundos add-seconds
A função addSeconds ajusta uma determinada data por um número especificado de segundos, usando valores positivos para incrementar e valores negativos para decrementar.
Sintaxe
{%= addSeconds(date, number) %}
- Entrada:
{%= addSeconds(stringToDate("2024-11-01T17:19:51Z"),10) %} - Saída:
2024-11-01T17:20:01Z
Adicionar anos add-years
A função addYears ajusta uma determinada data por um número especificado de anos, usando valores positivos para incrementar e valores negativos para decrementar.
Sintaxe
{%= addYears(date, number) %}
- Entrada:
{%= addYears(stringToDate("2024-11-01T17:19:51Z"),2) %} - Saída:
2026-11-01T17:19:51Z
Idade age
A função age é usada para recuperar a idade de uma determinada data.
Sintaxe
{%= age(datetime) %}
Idade (em dias) age-days
A função ageInDays calcula a idade de uma determinada data em dias, ou seja, o número de dias decorridos entre a determinada data e a data atual, negativo para datas futuras e positivo para datas passadas.
Sintaxe
{%= ageInDays(date) %}
currentDate = 2025-01-07T12:17:10.720122+05:30 (Ásia/Calcutá)
- Entrada:
{%= ageInDays(stringToDate("2025-01-01T17:19:51Z"))%} - Saída:
5
Idade em meses age-months
A função ageInMonths calcula a idade de uma determinada data em meses, ou seja, o número de meses decorridos entre a determinada data e a data atual , negativo para datas futuras e positivo para datas passadas.
Sintaxe
{%= ageInMonths(date) %}
currentDate = 2025-01-07T12:22:46.993748+05:30(Ásia/Calcutá)
- Entrada:
{%=ageInMonths(stringToDate("2024-01-01T00:00:00Z"))%} - Saída:
12
Comparar datas compare-dates
A função compareDates compara a primeira data de entrada com a outra. Retorna 0 se data1 for igual a data2, -1 se data1 for anterior a data2 e 1 se data1 for posterior a data2.
Sintaxe
{%= compareDates(date1, date2) %}
- Entrada:
{%=compareDates(stringToDate("2024-12-02T00:00:00Z"), stringToDate("2024-12-03T00:00:00Z"))%} - Saída:
-1
Converter ZonedDateTime convert-zoned-date-time
A função convertZonedDateTime converte uma data-hora em um determinado fuso horário.
Sintaxe
{%= convertZonedDateTime(dateTime, timezone) %}
- Entrada:
{%=convertZonedDateTime(stringToDate("2019-02-19T08:09:00Z"), "Asia/Tehran")%} - Saída:
2019-02-19T11:39+03:30[Asia/Tehran]
Tempo atual em milissegundos current-time
A função currentTimeInMillis é usada para recuperar a hora atual em milissegundos da época.
Sintaxe
{%= currentTimeInMillis() %}
Diferença de data date-diff
A função dateDiff é usada para recuperar a diferença entre duas datas em número de dias.
Sintaxe
{%= dateDiff(datetime,datetime) %}
A operação a seguir retorna o número de dias entre hoje e uma data futura armazenada no perfil (por exemplo, uma data de término de assinatura ou uma data de evento):
| code language-sql |
|---|
|
Use dateDiff para criar uma contagem regressiva dinâmica para linhas de assunto ou conteúdo do email:
| code language-handlebars |
|---|
|
Saída (exemplo): Your points expire in 7 days — use them before they're gone!
Dia do mês day-month
dayOfMonth retorna o número que representa o dia do mês.
Sintaxe
{%= dayOfMonth(datetime) %}
- Entrada:
{%= dayOfMonth(stringToDate("2024-11-05T17:19:51Z")) %} - Saída:
5
Dia da semana day-week
A função dayOfWeek é usada para recuperar o dia da semana. Ele retorna um número inteiro de 1 (segunda-feira) a 7 (domingo) seguindo o padrão ISO-8601.
Sintaxe
{%= dayOfWeek(datetime) %}
Use essa função no email ou no conteúdo para adaptar as mensagens com base no dia. O operador de comparação no PQL é = (único igual a, não ==):
| code language-handlebars |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 | |
|---|---|
| Dia | Valor retornado |
| Segunda-feira | 1 |
| Terça-feira | 2 |
| Quarta-feira | 3 |
| Quinta-feira | 4 |
| Sexta-feira | 5 |
| Sábado | 6 |
| domingo | 7 |
dayOfWeek() foi criado para personalização de conteúdo (por exemplo, adaptando o texto do corpo do email com base no dia). Se você precisar rotear perfis de forma diferente em uma jornada com base no dia da semana (por exemplo, ignorar fins de semana para uma atividade Wait), use a opção interna Condição de tempo → Dia da semana, disponível diretamente na atividade jornada Condition. Saiba maisDia do ano day-year
A função dayOfYear é usada para recuperar o dia do ano.
Sintaxe
{%= dayOfYear(datetime) %}
- Entrada:
{%= dayOfYear(stringToDate("2024-03-15T00:00:00Z")) %} - Saída:
75
Diferença em segundos diff-seconds
A função diffInSeconds retorna a diferença entre duas datas em termos de segundos.
Sintaxe
{%= diffInSeconds(endDate, startDate) %}
- Entrada:
{%=diffInSeconds(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-11-01T17:19:01Z"))%} - Saída:
50
Extrair horas extract-hours
A função extractHours extrai o componente de hora de um determinado carimbo de data/hora.
Sintaxe
{%= extractHours(date) %}
- Entrada:
{%= extractHours(stringToDate("2024-11-01T17:19:51Z"))%} - Saída:
17
Extrair Minutos extract-minutes
A função extractMinutes extrai o componente de minuto de um carimbo de data/hora especificado.
Sintaxe
{%= extractMinutes(date) %}
- Entrada:
{%= extractMinutes(stringToDate("2024-11-01T17:19:51Z"))%} - Saída:
19
Combine extractHours e extractMinutes para renderizar apenas a porção de tempo sem data, dia ou ano:
| code language-handlebars |
|---|
|
Saída (exemplo): Your appointment is confirmed for 14:05.
A proteção zero à esquerda ({%#if m < 10%}0{%/if%}) garante que os minutos abaixo de 10 sejam exibidos como dois dígitos (por exemplo, 09 em vez de 9).
Extrair meses extract-months
A função extractMonth extrai o componente de mês de um determinado carimbo de data/hora.
Sintaxe
{%= extractMonths(date) %}
- Entrada:
{%=extractMonth(stringToDate("2024-11-01T17:19:51Z"))%} - Saída:
11
Extrair segundos extract-seconds
A função extractSeconds extrai o segundo componente de um determinado carimbo de data/hora.
Sintaxe
{%= extractSeconds(date) %}
- Entrada:
{%=extractSeconds(stringToDate("2024-11-01T17:19:51Z"))%} - Saída:
51
Formatar data format-date
A função formatDate é usada para formatar um valor de data e hora. O formato deve ser um padrão DateTimeFormat do Java válido.
Sintaxe
{%= formatDate(datetime, format) %}
Onde o primeiro parâmetro é o atributo date-time e o segundo valor é como você gostaria que a data fosse convertida e exibida.
formatDate requer um tipo de campo data-hora como entrada, não uma cadeia de caracteres. Se o campo estiver armazenado como um tipo de sequência no esquema XDM, primeiro converta-o para data e hora usando uma função de conversão como stringToDate() ou toDateTime(). Veja os exemplos abaixo.Exemplos
A operação a seguir formata um campo de data e hora para o formato MM/DD/AA.
| code language-sql |
|---|
|
Se o campo estiver armazenado como uma cadeia de caracteres, você deverá primeiro convertê-lo em data e hora usando stringToDate() antes de formatá-lo.
| code language-sql |
|---|
|
A operação a seguir retorna um formato de data completo com nome do dia, nome do mês, dia e ano.
| code language-sql |
|---|
|
Saída: Wednesday January 01 2020
Você pode formatar a hora atual do sistema para gerar datas dinâmicas. A operação a seguir retorna a data atual no formato MM/dd/AAAA.
| code language-sql |
|---|
|
Saída (em 30 de janeiro de 2026): 01/30/2026
Você pode extrair o dia da semana em forma abreviada.
| code language-sql |
|---|
|
Saída: Sun (para domingo), Mon (para segunda-feira), Tue (para terça-feira), etc.
Para saída em minúsculas, combine com a função lowerCase:
| code language-sql |
|---|
|
Saída: sun, mon, tue, etc.
Ao usar um carimbo de data e hora de um atributo de contexto de evento de jornada, dois requisitos se aplicam:
- Vincular o carimbo de data/hora a
toDateTime()— os carimbos de data/hora do evento de contexto não são reconhecidos automaticamente como valores de data/hora porformatDate(). - Quebrar IDs de evento numéricas em acentos graves — se a ID de evento for um número (por exemplo,
1697323153), ela deverá ser evitada com acentos graves no caminho da expressão, caso contrário, o editor gerará um erro de sintaxe do PQL. - Use
{% let %}ou{%= %}sintaxe — você pode atribuir o resultado a uma variável com{% let %}e renderizá-lo com{{varName}}ou usar a sintaxe{%= %}embutida diretamente.
| code language-handlebars |
|---|
|
Saída (exemplo): 18/03/2026 14:30
formatDate() com um carimbo de data/hora de evento de contexto embutido ({%= formatDate(...) %}). As causas mais comuns são uma ID de evento numérica que não está encapsulada em acentos graves (`) ou um campo de carimbo de data/hora passado diretamente para formatDate() sem primeiro encapsulá-lo em toDateTime(). Para corrigir ambos os problemas, use o padrão de atribuição {% let %} mostrado no exemplo acima.Caracteres padrão pattern-characters
Algumas letras de padrão podem parecer semelhantes, mas representam conceitos diferentes.
2023-12-31T10:15:30Z)y2023Y2024 (desde 31 de dezembro de 2023 cai na primeira semana de 2024)MJan, January)12 ou Decm15d31D365Formatar data com suporte local format-date-locale
A função formatDate pode ser usada para formatar um valor de data e hora em sua representação sensível a idioma correspondente, ou seja, em um local desejado. O formato deve ser um padrão DateTimeFormat do Java válido.
Sintaxe
{%= formatDate(datetime, format, locale) %}
Onde a primeira string é o atributo de data, o segundo valor é como você gostaria que a data fosse convertida e exibida, e o terceiro valor representa o local no formato de string.
Exemplo
A operação a seguir retornará a data no seguinte formato: MM/dd/AA e localidade FRANÇA.
{%= formatDate(profile.timeSeriesEvents._mobile.hotelBookingDetails.bookingDate, "MM/dd/YY", "fr_FR") %}
Obter CurrentZonedDateTime get-current-zoned-date-time
A função getCurrentZonedDateTime retorna a data e a hora atuais com informações de fuso horário.
Sintaxe
{%= getCurrentZonedDateTime() %}
- Entrada:
{%= getCurrentZonedDateTime() %} - Saída:
2024-12-06T17:22:02.281067+05:30[Asia/Kolkata]
Diferença de Horas hours-difference
A função diffInHours retorna a diferença entre duas datas em termos de horas.
Sintaxe
{%= diffInHours(endDate, startDate) %}
- Entrada:
{%= diffInHours(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-11-01T07:19:51Z"))%} - Saída:
10
Diferença de Minutos diff-minutes
A função diffInMinutes é usada para retornar a diferença entre duas datas em termos de minutos.
Sintaxe
{%= diffInMinutes(endDate, startDate) %}
- Entrada:
{%= diffInMinutes(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-11-01T16:19:51Z"))%} - Saída:
60
Diferença de meses months-difference
A função diffInMonths retorna a diferença entre duas datas em termos de meses.
Sintaxe
{%= diffInMonths(endDate, startDate) %}
- Entrada:
{%=diffInMonths(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-08-01T17:19:51Z"))%} - Saída:
3
Definir dias set-days
A função setDays é usada para definir o dia do mês para a data-hora especificada.
Sintaxe
{%= setDays(datetime, day) %}
Defina o dia do mês como 1º:
- Entrada:
{%= setDays(stringToDate("2024-11-15T17:19:51Z"), 1) %} - Saída:
2024-11-01T17:19:51Z
Definir horas set-hours
A função setHours é usada para definir a hora da data-hora.
Sintaxe
{%= setHours(datetime, hour) %}
- Entrada:
{%= setHours(stringToDate("2024-11-01T17:19:51Z"), 0) %} - Saída:
2024-11-01T00:19:51Z
Para direcionar um perfil X dias antes de uma data armazenada no perfil (por exemplo, expiração de assinatura), use addDays com um valor negativo:
| code language-sql |
|---|
|
Para normalizar também o tempo para uma hora fixa (por exemplo, 9h), combine com setHours:
| code language-sql |
|---|
|
Para data hora to-date-time
A função ToDateTime converte a cadeia de caracteres em data. Retorna a data da época como saída para entrada inválida.
Sintaxe
{%= toDateTime(string, string) %}
- Entrada:
{%=toDateTime("2024-11-01T17:19:51Z")%} - Saída:
2024-11-01T17:19:51Z
Para UTC to-utc
A função toUTC é usada para converter um datetime em UTC.
Sintaxe
{%= toUTC(datetime) %}
Truncar para o início do dia truncate-day
A função truncateToStartOfDay é usada para modificar uma determinada data-hora definindo-a como o início do dia com a hora definida como 00:00.
Sintaxe
{%= truncateToStartOfDay(date) %}
- Entrada:
{%= truncateToStartOfDay(stringToDate("2024-11-01T17:19:51Z")) %} - Saída:
2024-11-01T00:00Z
truncateToStartOfQuarter truncate-quarter
A função truncateToStartOfQuarter é usada para truncar uma data-hora para o primeiro dia de seu trimestre (por exemplo, 1º de janeiro, 1º de abril, 1º de julho, 1º de outubro) em 00:00.
Sintaxe
{%= truncateToStartOfQuarter(dateTime) %}
- Entrada:
{%=truncateToStartOfQuarter(stringToDate("2024-11-01T17:19:51Z"))%} - Saída:
2024-10-01T00:00Z
truncateToStartOfWeek truncate-week
A função truncateToStartOfWeek modifica uma determinada data-hora definindo-a para o início da semana (segunda-feira às 00:00).
Sintaxe
{%= truncateToStartOfWeek(dateTime) %}
- Entrada:
{%= truncateToStartOfWeek(stringToDate("2024-11-19T17:19:51Z"))%} // tuesday - Saída:
2024-11-18T00:00Z // monday
truncateToStartOfYear truncate-year
A função truncateToStartOfYear é usada para modificar uma determinada data-hora, truncando-a para o primeiro dia do ano (1º de janeiro) em 00:00.
Sintaxe
{%= truncateToStartOfYear(dateTime) %}
- Entrada:
{%=truncateToStartOfYear(stringToDate("2024-11-01T17:19:51Z"))%} - Saída:
2024-01-01T00:00Z
Semana do ano week-of-year
A função weekOfYear é usada para recuperar a semana do ano.
Sintaxe
{%= weekOfYear(datetime) %}
- Entrada:
{%= weekOfYear(stringToDate("2024-11-01T17:19:51Z")) %} - Saída:
44
Diferença de anos diff-years
A função diffInYears é usada para retornar a diferença entre duas datas em termos de anos.
Sintaxe
{%= diffInYears(endDate, startDate) %}: int
- Entrada:
{%=diffInYears(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2019-10-01T17:19:51Z"))%} - Saída:
5