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:
- Obtener la hora o fecha actual con el control específico de zona horaria (ahora, nowWithDelta, currentTimeInMillis)
- Calcule la diferencia entre dos fechas u horas, en días o milisegundos, según el tipo de parámetro (dateDiff)
- Compruebe si una fecha está dentro de un intervalo de tiempo específico (inLastDays, inLastHours, inLastMonths, inLastYears, inNextDays, inNextHours, inNextMonths, inNextYears)
- Modificar componentes de fecha y hora (setHours, setDays, updateTimeZone)
- Realizar cálculos y comparaciones basados en el tiempo
- Convertir entre diferentes formatos de tiempo y representaciones
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.
now() no están disponibles en el editor de personalización para el contenido de correo electrónico. Más informacióncurrentTimeInMillis currentTimeInMillis
Devuelve el tiempo actual en milisegundos epoch.
currentTimeInMillis()currentTimeInMillis()
Devuelve un entero.
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.
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.dateDiff(<date1>,<date2>)| 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.
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.
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).
inLastDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inLastDays(<dateTime>,<integer>)
Devuelve un valor booleano.
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).
inLastHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inLastHours(<dateTime>,<integer>)
Devuelve un valor booleano.
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).
inLastMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inLastMonths(<dateTime>,<integer>)
Devuelve un valor booleano.
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).
inLastYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inLastYears(<dateTime>,<integer>)
Devuelve un valor booleano.
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.
inNextDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inNextDays(<dateTime>,<integer>)
Devuelve un valor booleano.
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.
inNextHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inNextHours(<dateTime>,<integer>)
Devuelve un valor booleano.
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.
inNextMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inNextMonths(<dateTime>,<integer>)
Devuelve un valor booleano.
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.
inNextYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| fecha y hora | dateTime |
| delta | entero |
inNextYears(<dateTime>,<integer>)
Devuelve un valor booleano.
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.
getCurrentZonedDateTime() en su lugar. Más informaciónnow(<parameter>)| table 0-row-2 1-row-2 | |
|---|---|
| Parámetro | Descripción |
| cadena | Identificador de zona horaria (opcional) |
now()
now("<timeZone id>")
Devuelve un valor dateTime.
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.
nowWithDelta(<parameters>)| 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. |
nowWithDelta(<delta>,<date part>
nowWithDelta(<delta>,<date part>,"<timeZone id>")
Devuelve un valor dateTime.
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.
setHours(<parameter>)| 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 |
setHours(<dateTime>,<hours>)
Devuelve una fecha y hora.
setHours(<dateTimeOnly>,<hours>)
Devuelve una fecha y hora sin considerar la zona horaria.
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.
setDays(<parameter>)| 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 |
setDays(<dateTime>,<days>)
Devuelve una fecha y hora.
setDays(<dateTimeOnly>,<days>)
Devuelve una fecha y hora sin considerar la zona horaria.
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.
updateTimeZone(<parameters>)- id de zona horaria: cadena
- dateTime
updateTimeZone(<dateTime>,<timeZone id>)
Devuelve una fecha y hora.
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.
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).