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)
- 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”
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:00, l’ora restituita sarà le 20:00.:45: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.
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: In questa pagina sono documentate tutte le funzioni di data e ora disponibili nelle espressioni di percorso di AJO, con informazioni su come ottenere l’ora corrente, verificare se una data rientra in una finestra temporale relativa e modificare i componenti data/ora.
Intenti:
- Ottieni il datetime corrente (con fuso orario facoltativo) utilizzando
nowonowWithDelta - Recupera l’ora corrente come numero intero epoca utilizzando
currentTimeInMillis - Controlla se un valore datetime rientra negli ultimi N giorni, ore, mesi o anni utilizzando
inLastDays,inLastHours,inLastMonths,inLastYears - Controlla se un datetime rientra nei N giorni, ore, mesi o anni successivi utilizzando
inNextDays,inNextHours,inNextMonths,inNextYears - Forza un’ora o un giorno specifico del mese su un valore datetime utilizzando
setHoursosetDays - Convertire un datetime in un fuso orario diverso mantenendo lo stesso istante utilizzando
updateTimeZone
Glossario:
- dateTime: valore data-ora che include informazioni di scostamento fuso orario (specifico per prodotto)
- dateTimeOnly: valore data-ora senza informazioni sul fuso orario (specifico per prodotto)
- millisecondi epoca: numero intero che rappresenta il numero di millisecondi trascorsi dal 1970-01-01T00:00:00Z
- delta: offset intero (positivo o negativo) utilizzato con
nowWithDeltaper spostare il tempo corrente di un numero di anni, mesi, giorni, ore, minuti o secondi
Guardrail:
now()è disponibile solo nelle espressioni di percorso; per la personalizzazione delle e-mail utilizza invecegetCurrentZonedDateTime()- L’ID del fuso orario in
nowWithDeltadeve essere una costante stringa. I riferimenti ai campi e le espressioni dinamiche non sono supportati - L’ID del fuso orario in
updateTimeZonedeve essere una costante stringa
Terminologia:
- Nome canonico: funzioni data — Acronimo: none — varianti: funzioni data-ora, funzioni temporali
- Sinonimi: “now()” = “current datetime”; “currentTimeInMillis()” = “current epoch milliseconds”
- Non confondere: “inLastDays” (guarda indietro nel tempo) ≠ “inNextDays” (guarda avanti nel tempo)
- Non confondere: “setHours” (sostituisce il componente Ora) ≠ “nowWithDelta” (distanzia l’ora corrente)
- Non confondere: “updateTimeZone” (stessa istantanea, diversa rappresentazione del fuso orario) ≠ “setHours” (modifica il valore orario stesso)
Domande frequenti:
- Q: posso utilizzare
now()nel contenuto di personalizzazione e-mail? — No,now()è disponibile solo nelle espressioni di percorso. UtilizzagetCurrentZonedDateTime()per la personalizzazione delle e-mail. - D: come posso verificare se si è verificato un evento nelle ultime 24 ore? — Utilizza
inLastHours(@event{MyEvent.timestamp}, 24). - D: come si ottiene uno scostamento dell’ora corrente di 2 ore nel passato? — Utilizza
nowWithDelta(-2, "hours"). - D: cosa fa
updateTimeZonein modo diverso dasetHours? —updateTimeZonemantiene lo stesso istante di tempo ma lo esprime in un fuso orario diverso, mentresetHoursmodifica effettivamente il componente ora del valore datetime. - Q: il parametro del fuso orario in
nowWithDeltapuò essere un campo del profilo? — No, l’ID del fuso orario deve essere una costante stringa; i riferimenti ai campi non sono supportati. - D: cosa succede quando
nowWithDelta()viene utilizzato con mesi e la data corrente è un mese di fine? — La funzione utilizza l’aritmetica del mese di calendario e normalizza il risultato fino all’ultimo giorno valido del mese di destinazione. Ad esempio, aggiungendo 1 mese al 31 gennaio, viene restituito il 28 febbraio (non il 3 marzo).