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:
- Obtenha a hora ou data atual com a manipulação de fuso horário específica (now, nowWithDelta, currentTimeInMillis)
- Calcule a diferença entre duas datas ou datas-horas, em dias ou milissegundos, dependendo do tipo de parâmetro (dateDiff)
- Verifique se uma data está em um intervalo de tempo específico (inLastDays, inLastHours, inLastMonths, inLastYears, inNextDays, inNextHours, inNextMonths, inNextYears)
- Modificar componentes de data e hora (setHours, setDays, updateTimeZone)
- Realizar cálculos e comparações com base no tempo
- Converter entre diferentes formatos de hora e representações
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.
now() não estão disponíveis no editor de personalização para conteúdo de email. Saiba maiscurrentTimeInMillis currentTimeInMillis
Retorna a hora atual em milissegundos da época.
currentTimeInMillis()currentTimeInMillis()
Retorna um inteiro.
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.
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.dateDiff(<date1>,<date2>)| 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.
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.
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.
inLastDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inLastDays(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inLastHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inLastHours(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inLastMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inLastMonths(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inLastYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inLastYears(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inNextDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inNextDays(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inNextHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inNextHours(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inNextMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inNextMonths(<dateTime>,<integer>)
Retorna um valor booleano.
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.
inNextYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| data e hora | dateTime |
| delta | inteiro |
inNextYears(<dateTime>,<integer>)
Retorna um valor booleano.
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.
getCurrentZonedDateTime(). Saiba maisnow(<parameter>)| table 0-row-2 1-row-2 | |
|---|---|
| Parâmetro | Descrição |
| sequência de caracteres | Identificador de fuso horário (opcional) |
now()
now("<timeZone id>")
Retorna dateTime.
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.
nowWithDelta(<parameters>)| 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. |
nowWithDelta(<delta>,<date part>
nowWithDelta(<delta>,<date part>,"<timeZone id>")
Retorna dateTime.
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.
setHours(<parameter>)| 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 |
setHours(<dateTime>,<hours>)
Retorna um datetime.
setHours(<dateTimeOnly>,<hours>)
Retorna uma data e hora sem considerar o fuso horário.
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.
setDays(<parameter>)| 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 |
setDays(<dateTime>,<days>)
Retorna um datetime.
setDays(<dateTimeOnly>,<days>)
Retorna uma data e hora sem considerar o fuso horário.
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.
updateTimeZone(<parameters>)- id do fuso horário: string
- dateTime
updateTimeZone(<dateTime>,<timeZone id>)
Retorna um datetime.
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.
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
nowornowWithDelta - 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
setHoursorsetDays - 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
nowWithDeltato 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 usegetCurrentZonedDateTime()instead- The timezone ID in
nowWithDeltamust be a string constant — field references and dynamic expressions are not supported - The timezone ID in
updateTimeZonemust be a string constant dateDiffrequires both parameters to be the same data type (dateOnly,dateTimeOnly, ordateTime); mixing types is not supporteddateDiffreturnsnullif either parameter isnulldateDiffreturns days fordateOnlyparameters, but milliseconds (not days) fordateTimeOnlyanddateTimeparameters — 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(acceptsdateOnly,dateTimeOnly, ordateTime; returns days or milliseconds depending on type) ≠ the personalization editor’sdateDiff(accepts onlydateTime; always returns days)
FAQ:
- Q: Can I use
now()in email personalization content? — No,now()is only available in journey expressions. UsegetCurrentZonedDateTime()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
updateTimeZonedo differently fromsetHours? —updateTimeZonekeeps the same instant in time but expresses it in a different timezone, whilesetHoursactually changes the hour component of the datetime value. - Q: Can the timezone parameter in
nowWithDeltabe 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).