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:

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.

NOTE
Le funzioni presenti in questa pagina sono disponibili nelle espressioni di percorso. Alcune funzioni come now() non sono disponibili nell'editor di personalizzazione per i contenuti e-mail. Ulteriori informazioni

currentTimeInMillis currentTimeInMillis

Restituisce il tempo corrente in millisecondi epoca.

Sintassi
currentTimeInMillis()
Parametri
Questa funzione non utilizza parametri.
Firme e tipo restituito

currentTimeInMillis()

Restituisce un numero intero.

Esempi

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.

NOTE
Funzione diversa da dateDiff disponibile nell'editor di personalizzazione 🔗. La versione dell'editor di personalizzazione accetta solo dateTime parametri e restituisce sempre la differenza in giorni.
Sintassi
dateDiff(<date1>,<date2>)
Parametri
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.

Firme e tipo restituito

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.

Esempi

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.

Sintassi
inLastDays(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inLastDays(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inLastHours(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inLastHours(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inLastMonths(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inLastMonths(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inLastYears(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inLastYears(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inNextDays(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inNextDays(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inNextHours(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inNextHours(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inNextMonths(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inNextMonths(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

Sintassi
inNextYears(<dateTime>,<delta>)
Parametri
table 0-row-2 1-row-2 2-row-2
Parametro Tipo
data e ora dateTime
delta intero
Firme e tipo restituito

inNextYears(<dateTime>,<integer>)

Restituisce un valore booleano.

Esempi

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.

NOTE
Questa funzione è disponibile solo nelle espressioni di percorso. Per la personalizzazione delle e-mail e altri contenuti, utilizza invece getCurrentZonedDateTime(). Ulteriori informazioni
Sintassi
now(<parameter>)
Parametri
table 0-row-2 1-row-2
Parametro Descrizione
stringa Identificatore del fuso orario (facoltativo)
Firme e tipo restituito

now()

now("<timeZone id>")

Restituisce un valore dateTime.

Esempi

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.

Sintassi
nowWithDelta(<parameters>)
Parametri
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.
Firme e tipo restituito

nowWithDelta(<delta>,<date part>

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

Restituisce un valore dateTime.

Esempi

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.

Sintassi
setHours(<parameter>)
Parametri
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
Firme e tipo restituito

setHours(<dateTime>,<hours>)

Restituisce un valore datetime.

setHours(<dateTimeOnly>,<hours>)

Restituisce un valore datetime senza considerare il fuso orario.

Esempi

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.

Sintassi
setDays(<parameter>)
Parametri
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
Firme e tipo restituito

setDays(<dateTime>,<days>)

Restituisce un valore datetime.

setDays(<dateTimeOnly>,<days>)

Restituisce un valore datetime senza considerare il fuso orario.

Esempi

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.

Sintassi
updateTimeZone(<parameters>)
Parametri
  • id fuso orario: stringa
  • dateTime
Firma e tipo restituito

updateTimeZone(<dateTime>,<timeZone id>)

Restituisce un valore datetime.

Esempi

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.

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