Funzioni data date-functions
Le funzioni di data consentono di manipolare e utilizzare i valori di data e ora all’interno delle espressioni di percorso. Queste funzioni sono essenziali per le condizioni basate sul tempo, la pianificazione e i calcoli temporali nei percorsi dei clienti.
Utilizza le funzioni data quando devi:
- Ottieni l’ora o la data corrente con gestione del fuso orario specifica (now, nowWithDelta, currentTimeInMillis)
- Calcola la differenza tra due date o date-ora, in giorni o millisecondi a seconda del tipo di parametro (dateDiff)
- Controlla se una data rientra in un intervallo di tempo specifico (inLastDays, inLastHours, inLastMonths, inLastYears, inNextDays, inNextHours, inNextMonths, inNextYears)
- Modifica componenti data e ora (setHours, setDays, updateTimeZone)
- Eseguire calcoli e confronti basati sul tempo
- Conversione tra diversi formati e rappresentazioni temporali
Le funzioni di data forniscono un controllo preciso sulla logica temporale, consentendo di creare percorsi e condizioni di percorso sensibili al tempo che rispondono a specifici intervalli di tempo e pianificazioni.
now() non sono disponibili nell'editor di personalizzazione per i contenuti e-mail. Ulteriori informazionicurrentTimeInMillis currentTimeInMillis
Restituisce il tempo corrente in millisecondi epoca.
currentTimeInMillis()currentTimeInMillis()
Restituisce un numero intero.
currentTimeInMillis()
Restituisce “1544712617131”
dateDiff dateDiff
Restituisce la differenza tra due date o date-ore dello stesso tipo. L’unità del risultato dipende dal tipo di parametro: dateOnly parametri restituiscono la differenza in giorni, mentre dateTimeOnly e dateTime parametri restituiscono la differenza in millisecondi. Restituisce null se uno dei due parametri è null.
dateDiff disponibile nell'editor di personalizzazione 🔗. La versione dell'editor di personalizzazione accetta solo dateTime parametri e restituisce sempre la differenza in giorni.dateDiff(<date1>,<date2>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data 1 | dateOnly, dateTimeOnly o dateTime |
| data 2 | dateOnly, dateTimeOnly o dateTime |
Entrambi i parametri devono utilizzare lo stesso tipo di dati; la combinazione di tipi (ad esempio, dateOnly con dateTime) non è supportata. I parametri possono essere valori di data letterali, altre funzioni come now() o attributi contestuali (campi payload dell’evento, campi risposta dell’azione personalizzata, campi del profilo o dell’entità e variabili) purché siano digitati come dateOnly, dateTimeOnly o dateTime.
dateDiff(<dateOnly>,<dateOnly>)
Restituisce un numero intero che rappresenta il numero di giorni tra le due date.
dateDiff(<dateTimeOnly>,<dateTimeOnly>)
Restituisce un numero intero che rappresenta il numero di millisecondi compresi tra le due date/ore.
dateDiff(<dateTime>,<dateTime>)
Restituisce un numero intero che rappresenta il numero di millisecondi compresi tra le due date/ore.
dateDiff(toDateOnly('2023-12-15'), toDateOnly('2023-12-12'))
Restituisce 3 (giorni).
dateDiff(toDateTimeOnly('2023-12-15T00:00:00'), toDateTimeOnly('2023-12-12T00:00:00'))
Restituisce 259200000 (millisecondi, equivalenti a 3 giorni).
dateDiff(now(), toDateTime('2024-12-25T00:00:00Z'))
Restituisce il numero di millisecondi tra oggi e il 25 dicembre 2024.
dateDiff(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate}, toDateOnly('2023-01-01'))
Restituisce il numero di giorni tra il campo birthDate del profilo e il 1° gennaio 2023, supponendo che birthDate sia digitato come dateOnly.
inLastDays inLastDays
Restituisce true se un dato dateTime è compreso tra now e now - delta days.
inLastDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastDays(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastDays(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inLastHours inLastHours
Restituisce true se la data e l’ora specificate sono comprese tra now e now - delta hours.
inLastHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastHours(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inLastHours(@event{MyEvent.timestamp}, 4)
Restituisce true.
inLastMonths inLastMonths
Restituisce true se una data o un’ora specificata è compresa tra now e now - delta mesi.
inLastMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastMonths(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastMonths(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inLastYears inLastYears
Restituisce true se una data o un valore dateTime specificato è compreso tra now e now - delta years.
inLastYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastYears(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastYears(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inNextDays inNextDays
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta giorni.
inNextDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextDays(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextDays(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inNextHours inNextHours
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta ore.
inNextHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextHours(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inNextMonths inNextMonths
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta mesi.
inNextMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextMonths(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextMonths(toDateTime('2023-01-12T01:11:00Z'), 4)
Restituisce true.
inNextYears inNextYears
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta anni.
inNextYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextYears(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextYears(toDateTime('2021-12-12T01:11:00Z'), 4)
Restituisce true.
now now
Restituisce la data corrente in formato data e ora. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
getCurrentZonedDateTime(). Ulteriori informazioninow(<parameter>)| table 0-row-2 1-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | Identificatore del fuso orario (facoltativo) |
now()
now("<timeZone id>")
Restituisce un valore dateTime.
now()
Restituisce 2023-06-03T06:30Z.
toString(now())
Restituisce “2023-06-03T06:30Z”
now("Europe/Paris")
Restituisce 2023-06-03T08:30+02:00.
nowWithDelta nowWithDelta
Restituisce il valore datetime corrente comprensivo di un offset. Se viene specificato un ID di fuso orario, verrà applicato lo scostamento del fuso orario. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
nowWithDelta(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Descrizione |
| delta | valore intero positivo o negativo |
| parte data | anni, mesi, giorni, ore, minuti o secondi come stringa |
| id fuso orario | rappresentazione stringa del valore del fuso orario. Per ulteriori informazioni, vedere Tipi di dati. L’ID del fuso orario deve essere una costante stringa. Non può essere un riferimento di campo né un’espressione. |
nowWithDelta(<delta>,<date part>
nowWithDelta(<delta>,<date part>,"<timeZone id>")
Restituisce un valore dateTime.
nowWithDelta(-2, "hours")
nowWithDelta(-2, "hours", "Europe/Paris")
Restituisce un valore dateTime esattamente 2 ore fa.
nowWithDelta(1, "months", "Asia/Tokyo")
Quando valutato il 31/01/2026, restituisce il 31/02/2026; quando valutato il 31/05/2026, restituisce il 30/06/2026…
nowWithDelta() utilizza l’aritmetica del mese del calendario. Se il mese di destinazione ha un numero di giorni inferiore al giorno del mese corrente, il risultato viene normalizzato all’ultimo giorno valido di quel mese. La funzione non viene riportata al mese successivo.
setHours setHours
Imposta solo le ore di una data/ora o data/ora. Ad esempio, se desideri aspettare fino a un’ora specifica domani, puoi forzare l’ora.
setHours(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| data e ora senza considerare il fuso orario | dateTimeOnly |
| ore | intero |
setHours(<dateTime>,<hours>)
Restituisce un valore datetime.
setHours(<dateTimeOnly>,<hours>)
Restituisce un valore datetime senza considerare il fuso orario.
setHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce 2023-12-12T04:11:00Z.
setHours(nowWithDelta(1, "days"), 20)
Restituisce domani alle 20.00, dove XY corrisponde ai minuti al momento della valutazione dell’ora corrente. :XYSe la valutazione viene eseguita alle 02:45, l’ora restituita sarà le 20:45.
setDays setDays
Imposta solo il giorno di un’ora o di una data. Ad esempio, se desideri attendere fino a un determinato giorno del mese, puoi forzare il giorno.
setDays(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| data e ora senza considerare il fuso orario | dateTimeOnly |
| giorni | intero |
setDays(<dateTime>,<days>)
Restituisce un valore datetime.
setDays(<dateTimeOnly>,<days>)
Restituisce un valore datetime senza considerare il fuso orario.
setDays(toDateTime('2023-12-12T01:11:00Z'), 25)
Restituisce 2023-12-25T01:11:00Z.
setDays(toDateTimeOnly(@event{MyEvent.registrationDate}), 1)
updateTimeZone updateTimeZone
Restituisce una nuova data e ora, con un nuovo fuso orario nello stesso istante.
updateTimeZone(<parameters>)- id fuso orario: stringa
- dateTime
updateTimeZone(<dateTime>,<timeZone id>)
Restituisce un valore datetime.
updateTimeZone( toDateTime("2023-08-28T08:15:30.123-07:00"), "Europe/Paris"))
Restituisce 2023-08-28T17:15:30.123+02:00.
updateTimeZone(@event{MyExpEvent.timestamp}, "Australia/Sydney")
Se il valore del campo timestamp è 2021-11-16T16:55:12.939318+01:00, la funzione restituisce 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).