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)
- 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”
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 a. m., la hora devuelta 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.
Esta sección contiene conocimientos estructurados destinados a apoyar la interpretación, la recuperación y la respuesta a preguntas relacionadas con este tema.
Para una comprensión completa, esta información debe combinarse con la documentación de esta página. Ninguna de las fuentes pretende ser independiente; la página describe la función, mientras que esta sección proporciona contexto adicional que ayuda a desambiguar la terminología, la intención, la aplicabilidad y las restricciones.
- TL;DR: Esta página documenta todas las funciones de fecha y hora disponibles en las expresiones de recorrido de AJO, e incluye información sobre cómo obtener la hora actual, comprobar si una fecha se encuentra dentro de una ventana de hora relativa y modificar los componentes de fecha y hora.
Intenciones:
- Obtener la fecha y hora actual (con zona horaria opcional) utilizando
nowonowWithDelta - Recuperar la hora actual como un entero epoch usando
currentTimeInMillis - Compruebe si una fecha y hora se encuentra dentro de los últimos N días, horas, meses o años con
inLastDays,inLastHours,inLastMonths,inLastYears - Compruebe si una fecha y hora se encuentra dentro de los N días, horas, meses o años siguientes usando
inNextDays,inNextHours,inNextMonths,inNextYears - Forzar una hora o día específico del mes en un valor datetime utilizando
setHoursosetDays - Convertir una fecha y hora en una zona horaria diferente preservando al mismo tiempo el mismo instante mediante
updateTimeZone
Glosario:
- dateTime: un valor de fecha y hora que incluye información de desplazamiento de zona horaria (específico del producto)
- dateTimeOnly: un valor de fecha y hora sin información de zona horaria (específico del producto)
- epoch milisegundos: Un entero que representa el número de milisegundos transcurridos desde 1970-01-01T00:00:00Z
- delta: Un desplazamiento entero (positivo o negativo) utilizado con
nowWithDeltapara cambiar el tiempo actual en un número de años, meses, días, horas, minutos o segundos
Protecciones:
now()solo está disponible en expresiones de recorrido; en su lugar, utilicegetCurrentZonedDateTime()para la personalización del correo electrónico- El identificador de zona horaria de
nowWithDeltadebe ser una constante de cadena; no se admiten referencias de campo ni expresiones dinámicas - El identificador de zona horaria de
updateTimeZonedebe ser una constante de cadena
Terminología:
- Nombre canónico: Funciones de fecha — Acrónimo: none — variantes: funciones de fecha y hora, funciones temporales
- Sinónimos: “now()” = “current datetime”; “currentTimeInMillis()” = “current epoch miliseconds”
- No confunda: “inLastDays” (retrocede en el tiempo) ≠ “inNextDays” (retrocede en el tiempo)
- No confunda: “setHours” (reemplaza el componente de hora) ≠ “nowWithDelta” (desplaza la hora actual)
- No confunda: “updateTimeZone” (mismo instante, diferente representación de zona horaria) ≠ “setHours” (cambia el valor de hora en sí)
PREGUNTAS MÁS FRECUENTES:
- Q: ¿Puedo usar
now()en el contenido de personalización de correo electrónico? — No,now()solo está disponible en expresiones de recorrido. UsargetCurrentZonedDateTime()para la personalización del correo electrónico. - Q: ¿Cómo puedo comprobar si se ha producido un evento en las últimas 24 horas? — Usar
inLastHours(@event{MyEvent.timestamp}, 24). - Q: ¿Cómo puedo obtener el desfase de tiempo actual de 2 horas en el pasado? — Usar
nowWithDelta(-2, "hours"). - Q: ¿Qué hace
updateTimeZonede manera diferente asetHours? —updateTimeZonemantiene el mismo instante en el tiempo pero lo expresa en una zona horaria diferente, mientras quesetHourscambia realmente el componente de hora del valor datetime. - Q: ¿Puede el parámetro de zona horaria de
nowWithDeltaser un campo de perfil? — No, el ID de zona horaria debe ser una constante de cadena; no se admiten referencias de campo. - Q: ¿Qué sucede cuando
nowWithDelta()se usa con meses y la fecha actual es una fecha de fin de mes? — La función utiliza aritmética de mes-calendario y normaliza el resultado hasta el último día válido del mes de destino. Por ejemplo, si agrega 1 mes al 31 de enero, se devuelve el 28 de febrero (no el 3 de marzo).