Funções de data date-functions

As funções de data permitem manipular e trabalhar com valores de data e hora nas expressões de jornada. Essas funções são essenciais para condições baseadas em tempo, programação e cálculos temporais nas jornadas do cliente.

Use funções de data quando precisar:

As funções de data fornecem controle preciso sobre a lógica temporal, permitindo que você crie caminhos de jornadas com detecção de hora e condições que respondam a cronogramas e cronogramas específicos.

NOTE
As funções nesta página estão disponíveis em expressões de jornada. Algumas funções como now() não estão disponíveis no editor de personalização para conteúdo de email. Saiba mais

currentTimeInMillis currentTimeInMillis

Retorna a hora atual em milissegundos da época.

Sintaxe
currentTimeInMillis()
Parâmetros
Esta função não usa parâmetros.
Assinaturas e tipo retornado

currentTimeInMillis()

Retorna um inteiro.

Exemplos

currentTimeInMillis()

Retorna “1544712617131”.

dateDiff dateDiff

Retorna a diferença entre duas datas ou datas-horas do mesmo tipo. A unidade do resultado depende do tipo de parâmetro: dateOnly parâmetros retornam a diferença em dias, enquanto os parâmetros dateTimeOnly e dateTime retornam a diferença em milissegundos. Retorna null se um dos parâmetros for null.

NOTE
Esta é uma função diferente da dateDiff disponível no editor de personalização. A versão do editor de personalização aceita apenas dateTime parâmetros e sempre retorna a diferença em dias.
Sintaxe
dateDiff(<date1>,<date2>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data 1 dateOnly, dateTimeOnly ou dateTime
data 2 dateOnly, dateTimeOnly ou dateTime

Ambos os parâmetros devem usar o mesmo tipo de dados; a combinação de tipos (por exemplo, dateOnly com dateTime) não é suportada. Os parâmetros podem ser valores de data literais, outras funções como now() ou atributos contextuais (campos de carga do evento, campos de resposta de ação personalizada, campos de perfil ou entidade e variáveis), desde que sejam digitados como dateOnly, dateTimeOnly ou dateTime.

Assinaturas e tipo retornado

dateDiff(<dateOnly>,<dateOnly>)

Retorna um número inteiro que representa o número de dias entre as duas datas.

dateDiff(<dateTimeOnly>,<dateTimeOnly>)

Retorna um número inteiro que representa o número de milissegundos entre as duas datas-horas.

dateDiff(<dateTime>,<dateTime>)

Retorna um número inteiro que representa o número de milissegundos entre as duas datas-horas.

Exemplos

dateDiff(toDateOnly('2023-12-15'), toDateOnly('2023-12-12'))

Retorna 3 (dias).

dateDiff(toDateTimeOnly('2023-12-15T00:00:00'), toDateTimeOnly('2023-12-12T00:00:00'))

Retorna 259200000 (milissegundos, equivalente a 3 dias).

dateDiff(now(), toDateTime('2024-12-25T00:00:00Z'))

Retorna o número de milissegundos entre hoje e 25 de dezembro de 2024.

dateDiff(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate}, toDateOnly('2023-01-01'))

Retorna o número de dias entre o campo birthDate do perfil e 1º de janeiro de 2023, supondo que birthDate seja digitado como dateOnly.

inLastDays inLastDays

Retorna verdadeiro se um determinado dateTime estiver entre agora e agora - dias delta.

Sintaxe
inLastDays(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inLastDays(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inLastDays(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

inLastHours inLastHours

Retorna verdadeiro se a data e hora especificadas estiverem entre agora e agora - delta horas.

Sintaxe
inLastHours(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inLastHours(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inLastHours(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

inLastHours(@event{MyEvent.timestamp}, 4)

Retorna verdadeiro.

inLastMonths inLastMonths

Retorna verdadeiro se uma determinada data ou dateTime estiver entre agora e agora - meses delta.

Sintaxe
inLastMonths(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inLastMonths(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inLastMonths(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

inLastYears inLastYears

Retorna verdadeiro se uma determinada data ou dateTime estiver entre agora e agora - anos delta.

Sintaxe
inLastYears(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inLastYears(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inLastYears(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

inNextDays inNextDays

Retorna verdadeiro se uma determinada data ou dateTime estiver entre agora e agora + dias delta.

Sintaxe
inNextDays(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inNextDays(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inNextDays(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

inNextHours inNextHours

Retorna verdadeiro se uma determinada data ou dateTime estiver entre agora e agora + horas delta.

Sintaxe
inNextHours(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inNextHours(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inNextHours(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

inNextMonths inNextMonths

Retorna verdadeiro se uma determinada data ou dateTime estiver entre agora e agora + meses delta.

Sintaxe
inNextMonths(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inNextMonths(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inNextMonths(toDateTime('2023-01-12T01:11:00Z'), 4)

Retorna verdadeiro.

inNextYears inNextYears

Retorna verdadeiro se uma determinada data ou dateTime estiver entre agora e agora + anos delta.

Sintaxe
inNextYears(<dateTime>,<delta>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
data e hora dateTime
delta inteiro
Assinaturas e tipo retornado

inNextYears(<dateTime>,<integer>)

Retorna um valor booleano.

Exemplos

inNextYears(toDateTime('2021-12-12T01:11:00Z'), 4)

Retorna verdadeiro.

now now

Retorna a data atual no formato de data e hora. Para obter mais informações sobre tipos de dados, consulte esta página.

NOTE
Esta função só está disponível em expressões de jornada. Para personalização de email e outro conteúdo, use getCurrentZonedDateTime(). Saiba mais
Sintaxe
now(<parameter>)
Parâmetros
table 0-row-2 1-row-2
Parâmetro Descrição
sequência de caracteres Identificador de fuso horário (opcional)
Assinaturas e tipo retornado

now()

now("<timeZone id>")

Retorna dateTime.

Exemplos

now()

Retorna 06/2023 T06:30Z.

toString(now())

Retorna “2023-06-03T06:30Z”

now("Europe/Paris")

Retorna 2023-06-03T08:30+02:00.

nowWithDelta nowWithDelta

Retorna o datetime atual incluindo um deslocamento. Se uma ID de fuso horário for especificada, o deslocamento de fuso horário será aplicado. Para obter mais informações sobre tipos de dados, consulte esta página.

Sintaxe
nowWithDelta(<parameters>)
Parâmetros
table 0-row-2 1-row-2 2-row-2 3-row-2
Parâmetro Descrição
delta valor inteiro positivo ou negativo
parte de data anos, meses, dias, horas, minutos ou segundos como uma string
id do fuso horário representação da string do valor do fuso horário. Para obter mais informações, consulte Tipos de dados. A ID do fuso horário deve ser uma constante de sequência. Não pode ser uma referência de campo nem uma expressão.
Assinaturas e tipo retornado

nowWithDelta(<delta>,<date part>

nowWithDelta(<delta>,<date part>,"<timeZone id>")

Retorna dateTime.

Exemplos

nowWithDelta(-2, "hours")

nowWithDelta(-2, "hours", "Europe/Paris")

Retorna dateTime exatamente 2 horas atrás.

nowWithDelta(1, "months", "Asia/Tokyo")

Quando avaliado em 31/01/2026, retorna 28/02/2026; quando avaliado em 31/05/2026, retorna 30/06/2026…

nowWithDelta() usa aritmética de mês de calendário. Se o mês de destino tiver menos dias que o dia do mês atual, o resultado será normalizado para o último dia válido desse mês. A função não se estende para o mês seguinte.

setHours setHours

Define apenas as horas de uma data e hora ou data e hora. Por exemplo, se você quiser aguardar até uma determinada hora amanhã, poderá forçar a hora.

Sintaxe
setHours(<parameter>)
Parâmetros
table 0-row-2 1-row-2 2-row-2 3-row-2
Parâmetro Tipo
data e hora dateTime
data hora sem considerar o fuso horário dateTimeOnly
horas inteiro
Assinaturas e tipo retornado

setHours(<dateTime>,<hours>)

Retorna um datetime.

setHours(<dateTimeOnly>,<hours>)

Retorna uma data e hora sem considerar o fuso horário.

Exemplos

setHours(toDateTime('2023-12-12T01:11:00Z'), 4)

Retorna 2023-12-12T04:11:00Z.

setHours(nowWithDelta(1, "days"), 20)

Retorna amanhã às 20h00, sendo XY os minutos no momento da avaliação de hora atual. :XYSe a avaliação ocorrer às 2h45, o horário retornado será às 20h45.

setDays setDays

Define apenas o dia de uma data e hora ou data e hora. Por exemplo, se você quiser aguardar até um determinado dia do mês, poderá forçar o dia.

Sintaxe
setDays(<parameter>)
Parâmetros
table 0-row-2 1-row-2 2-row-2 3-row-2
Parâmetro Tipo
data e hora dateTime
data hora sem considerar o fuso horário dateTimeOnly
dias inteiro
Assinaturas e tipo retornado

setDays(<dateTime>,<days>)

Retorna um datetime.

setDays(<dateTimeOnly>,<days>)

Retorna uma data e hora sem considerar o fuso horário.

Exemplos

setDays(toDateTime('2023-12-12T01:11:00Z'), 25)

Retorna 2023-12-25T01:11:00Z.

setDays(toDateTimeOnly(@event{MyEvent.registrationDate}), 1)

updateTimeZone updateTimeZone

Retorna uma nova data e hora, com um novo fuso horário no mesmo instante.

Sintaxe
updateTimeZone(<parameters>)
Parâmetros
  • id do fuso horário: string
  • dateTime
Assinatura e tipo retornado

updateTimeZone(<dateTime>,<timeZone id>)

Retorna um datetime.

Exemplos

updateTimeZone( toDateTime("2023-08-28T08:15:30.123-07:00"), "Europe/Paris"))

Retorna 28T17:15:30.123+02:00.

updateTimeZone(@event{MyExpEvent.timestamp}, "Australia/Sydney")

Se o valor do campo de carimbo de data/hora for 2021-11-16T16:55:12.939318+01:00, a função retornará 2021-11-17T02:55:12.942115+11:00.

AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page documents all date and time functions available in AJO journey expressions, covering how to get the current time, check whether a date falls within a relative time window, and modify date/time components.

Intents:

  • Get the current datetime (with optional timezone) using now or nowWithDelta
  • Retrieve the current time as an epoch integer using currentTimeInMillis
  • Calculate the difference between two dates or date-times using dateDiff
  • Check if a datetime falls within the last N days, hours, months, or years using inLastDays, inLastHours, inLastMonths, inLastYears
  • Check if a datetime falls within the next N days, hours, months, or years using inNextDays, inNextHours, inNextMonths, inNextYears
  • Force a specific hour or day of the month on a datetime value using setHours or setDays
  • Convert a datetime to a different timezone while preserving the same instant using updateTimeZone

Glossary:

  • dateOnly: A date value with no time or timezone information (product-specific)
  • dateTime: A date-time value that includes timezone offset information (product-specific)
  • dateTimeOnly: A date-time value with no timezone information (product-specific)
  • epoch milliseconds: An integer representing the number of milliseconds elapsed since 1970-01-01T00:00:00Z
  • delta: An integer offset (positive or negative) used with nowWithDelta to shift the current time by a number of years, months, days, hours, minutes, or seconds

Guardrails:

  • now() is only available in journey expressions; for email personalization use getCurrentZonedDateTime() instead
  • The timezone ID in nowWithDelta must be a string constant — field references and dynamic expressions are not supported
  • The timezone ID in updateTimeZone must be a string constant
  • dateDiff requires both parameters to be the same data type (dateOnly, dateTimeOnly, or dateTime); mixing types is not supported
  • dateDiff returns null if either parameter is null
  • dateDiff returns days for dateOnly parameters, but milliseconds (not days) for dateTimeOnly and dateTime parameters — convert accordingly when comparing results across types

Terminology:

  • Canonical name: Date functions — Acronym: none — variants: date-time functions, temporal functions
  • Synonyms: “now()” = “current datetime”; “currentTimeInMillis()” = “current epoch milliseconds”
  • Do not confuse: “inLastDays” (looks back in time) ≠ “inNextDays” (looks forward in time)
  • Do not confuse: “setHours” (replaces the hour component) ≠ “nowWithDelta” (offsets the current time)
  • Do not confuse: “updateTimeZone” (same instant, different timezone representation) ≠ “setHours” (changes the time value itself)
  • Do not confuse: the journey expression editor’s dateDiff (accepts dateOnly, dateTimeOnly, or dateTime; returns days or milliseconds depending on type) ≠ the personalization editor’s dateDiff (accepts only dateTime; always returns days)

FAQ:

  • Q: Can I use now() in email personalization content? — No, now() is only available in journey expressions. Use getCurrentZonedDateTime() for email personalization.
  • Q: How do I check if an event happened in the last 24 hours? — Use inLastHours(@event{MyEvent.timestamp}, 24).
  • Q: How do I get the current time offset by 2 hours in the past? — Use nowWithDelta(-2, "hours").
  • Q: What does updateTimeZone do differently from setHours?updateTimeZone keeps the same instant in time but expresses it in a different timezone, while setHours actually changes the hour component of the datetime value.
  • Q: Can the timezone parameter in nowWithDelta be a profile field? — No, the timezone ID must be a string constant; field references are not supported.
  • Q: What happens when nowWithDelta() is used with months and the current date is a month-end date? — The function uses calendar-month arithmetic and normalizes the result to the last valid day of the target month. For example, adding 1 month to January 31 returns February 28 (not March 3).
recommendation-more-help
journey-optimizer-help