Funciones de fecha date-functions

Las funciones de fecha permiten manipular y trabajar con valores de fecha y hora dentro de las expresiones de recorrido. Estas funciones son esenciales para las condiciones basadas en el tiempo, la programación y los cálculos temporales de los recorridos del cliente.

Utilice las funciones de fecha cuando necesite:

Las funciones de fecha proporcionan un control preciso sobre la lógica temporal, lo que le permite crear rutas y condiciones de recorrido con distinción de tiempo que responden a marcos de tiempo y programaciones específicos.

NOTE
Las funciones de esta página están disponibles en expresiones de recorrido. Algunas funciones como now() no están disponibles en el editor de personalización para el contenido de correo electrónico. Más información

currentTimeInMillis currentTimeInMillis

Devuelve el tiempo actual en milisegundos epoch.

Sintaxis
currentTimeInMillis()
Parámetros
Esta función no utiliza parámetros.
Firmas y tipo devuelto

currentTimeInMillis()

Devuelve un entero.

Ejemplos

currentTimeInMillis()

Devuelve “1544712617131”

dateDiff dateDiff

Devuelve la diferencia entre dos fechas u horas del mismo tipo. La unidad del resultado depende del tipo de parámetro: dateOnly parámetros devuelven la diferencia en días, mientras que dateTimeOnly y dateTime parámetros devuelven la diferencia en milisegundos. Devuelve null si alguno de los parámetros es null.

NOTE
Esta función es diferente de dateDiff, disponible en el editor de personalización. La versión del editor de personalización solo acepta dateTime parámetros y siempre devuelve la diferencia en días.
Sintaxis
dateDiff(<date1>,<date2>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha 1 dateOnly, dateTimeOnly o dateTime
fecha 2 dateOnly, dateTimeOnly o dateTime

Ambos parámetros deben utilizar el mismo tipo de datos; no se admiten los tipos de mezcla (por ejemplo, dateOnly con dateTime). Los parámetros pueden ser valores de fecha literales, otras funciones como now() o atributos contextuales (campos de carga útil de evento, campos de respuesta de acción personalizada, campos de entidad o perfil y variables) siempre y cuando se escriban como dateOnly, dateTimeOnly o dateTime.

Firmas y tipo devuelto

dateDiff(<dateOnly>,<dateOnly>)

Devuelve un entero que representa el número de días entre las dos fechas.

dateDiff(<dateTimeOnly>,<dateTimeOnly>)

Devuelve un entero que representa el número de milisegundos entre las dos fechas y horas.

dateDiff(<dateTime>,<dateTime>)

Devuelve un entero que representa el número de milisegundos entre las dos fechas y horas.

Ejemplos

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

Devuelve 3 (días).

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

Devuelve 259200000 (milisegundos, equivalente a 3 días).

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

Devuelve el número de milisegundos entre hoy y el 25 de diciembre de 2024.

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

Devuelve el número de días entre el campo birthDate del perfil y el 1 de enero de 2023, suponiendo que birthDate tiene el tipo dateOnly.

inLastDays inLastDays

Devuelve verdadero si un dateTime determinado está entre ahora y ahora (días delta).

Sintaxis
inLastDays(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inLastDays(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

inLastHours inLastHours

Devuelve verdadero si la fecha y hora dadas son entre ahora y ahora (horas delta).

Sintaxis
inLastHours(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inLastHours(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

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

Devuelve verdadero.

inLastMonths inLastMonths

Devuelve true si una fecha o dateTime determinada está entre ahora y ahora (meses delta).

Sintaxis
inLastMonths(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inLastMonths(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

inLastYears inLastYears

Devuelve true si una fecha o dateTime determinada está entre ahora y ahora (años delta).

Sintaxis
inLastYears(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inLastYears(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

inNextDays inNextDays

Devuelve true si una fecha o dateTime determinados están entre ahora y ahora + días delta.

Sintaxis
inNextDays(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inNextDays(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

inNextHours inNextHours

Devuelve true si una fecha o dateTime determinada está entre ahora y ahora + horas delta.

Sintaxis
inNextHours(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inNextHours(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

inNextMonths inNextMonths

Devuelve verdadero si una fecha o fechaHora determinada está entre ahora y ahora + meses delta.

Sintaxis
inNextMonths(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inNextMonths(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

inNextYears inNextYears

Devuelve true si una fecha o dateTime determinada está entre ahora y ahora + años delta.

Sintaxis
inNextYears(<dateTime>,<delta>)
Parámetros
table 0-row-2 1-row-2 2-row-2
Parámetro Tipo
fecha y hora dateTime
delta entero
Firmas y tipo devuelto

inNextYears(<dateTime>,<integer>)

Devuelve un valor booleano.

Ejemplos

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

Devuelve verdadero.

now now

Devuelve la fecha actual en formato de fecha y hora. Para obtener más información sobre los tipos de datos, consulte esta página.

NOTE
Esta función solo está disponible en expresiones de recorrido. Para la personalización de correo electrónico y otro contenido, use getCurrentZonedDateTime() en su lugar. Más información
Sintaxis
now(<parameter>)
Parámetros
table 0-row-2 1-row-2
Parámetro Descripción
cadena Identificador de zona horaria (opcional)
Firmas y tipo devuelto

now()

now("<timeZone id>")

Devuelve un valor dateTime.

Ejemplos

now()

Devuelve 2023-06-03T06:30Z.

toString(now())

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

now("Europe/Paris")

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

nowWithDelta nowWithDelta

Devuelve la fecha y hora actuales, incluido un desplazamiento. Si se especifica un ID de zona horaria, se aplica el desplazamiento de zona horaria. Para obtener más información sobre los tipos de datos, consulte esta página.

Sintaxis
nowWithDelta(<parameters>)
Parámetros
table 0-row-2 1-row-2 2-row-2 3-row-2
Parámetro Descripción
delta valor entero positivo o negativo
parte de fecha años, meses, días, horas, minutos o segundos como una cadena
id de zona horaria representación de cadena del valor de zona horaria. Para obtener más información, consulte Tipos de datos. El ID de zona horaria debe ser una constante de cadena. No puede ser una referencia de campo ni una expresión.
Firmas y tipo devuelto

nowWithDelta(<delta>,<date part>

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

Devuelve un valor dateTime.

Ejemplos

nowWithDelta(-2, "hours")

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

Devuelve un valor dateTime de hace exactamente 2 horas.

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

Cuando se evalúa el 31-01-2026, devuelve 2026-02-28T…; cuando se evalúa el 31-05-2026, devuelve 30-06-2026…

nowWithDelta() utiliza aritmética de mes calendario. Si el mes de destino tiene menos días que el día del mes actual, el resultado se normaliza al último día válido de ese mes. La función no se traslada al mes siguiente.

setHours setHours

Establece solo las horas de una fecha, hora u hora. Por ejemplo, si desea esperar hasta una hora determinada mañana, puede forzar la hora.

Sintaxis
setHours(<parameter>)
Parámetros
table 0-row-2 1-row-2 2-row-2 3-row-2
Parámetro Tipo
fecha y hora dateTime
fecha y hora sin considerar la zona horaria dateTimeOnly
horas entero
Firmas y tipo devuelto

setHours(<dateTime>,<hours>)

Devuelve una fecha y hora.

setHours(<dateTimeOnly>,<hours>)

Devuelve una fecha y hora sin considerar la zona horaria.

Ejemplos

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

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

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

Regresa mañana a las 8:XY p.m., siendo XY los minutos en el momento de la evaluación de la hora actual. Si la evaluación se realiza a las 2:45, la hora de retorno será las 8:45 p.m.

setDays setDays

Establece solo el día de una fecha y hora o la fecha y hora. Por ejemplo, si desea esperar hasta un día determinado del mes, puede forzar el día.

Sintaxis
setDays(<parameter>)
Parámetros
table 0-row-2 1-row-2 2-row-2 3-row-2
Parámetro Tipo
fecha y hora dateTime
fecha y hora sin considerar la zona horaria dateTimeOnly
días entero
Firmas y tipo devuelto

setDays(<dateTime>,<days>)

Devuelve una fecha y hora.

setDays(<dateTimeOnly>,<days>)

Devuelve una fecha y hora sin considerar la zona horaria.

Ejemplos

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

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

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

updateTimeZone updateTimeZone

Devuelve una nueva fecha y hora, con una nueva zona horaria en el mismo instante.

Sintaxis
updateTimeZone(<parameters>)
Parámetros
  • id de zona horaria: cadena
  • dateTime
Firma y tipo devuelto

updateTimeZone(<dateTime>,<timeZone id>)

Devuelve una fecha y hora.

Ejemplos

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

Devuelve 2023-08-28T17:15:30.123+02:00.

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

Si el valor del campo de marca de tiempo es 2021-11-16T16:55:12.939318+01:00, la función devuelve 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