Types de données data-types

D’un point de vue technique, une constante contient toujours un type de données. Dans une expression littérale, nous ne spécifions que la valeur. Le type de données peut être déduit de la valeur (par exemple : chaîne, entier, décimal, etc.). Pour des cas spécifiques, tels que la date et l’heure, des fonctions dédiées sont utilisées pour la représentation.

Les sections ci-dessous fournissent des informations sur les différentes expressions de type de données et sur leur représentation.

string string

Description

Séquence de caractères courante. Pas de taille spécifique, à l’exception de la taille implicite provenant de l’environnement, comme la quantité de mémoire disponible.

Format JSON : chaîne

Format de sérialisation : UTF-8

Représentation littérale

"<value>"
'<value>'

Exemple

"hello world"
'hello world'

integer integer

Description

Valeur entière comprise entre -2^63 et 2^63-1.

Format JSON : nombre

Représentation littérale

<integer value>

Exemple

42

decimal decimal

Description

Nombre décimal. Représente une valeur flottante :

  • valeur finie positive la plus grande de type double, (2-2-52)x21023
  • valeur normale positive la plus petite de type double, 2-1022
  • valeur non nulle positive la plus petite de type double, 2 p-1074

Format JSON : nombre

Format de sérialisation : utilisation de « . » comme séparateur décimal.

Représentation littérale

<integer value>.<integer value>

Exemple

3.14

boolean boolean

Description

Valeur booléenne en minuscules : true ou false

Format JSON : booléen

Représentation littérale

true
false

Exemple

true

dateOnly date-only

Description

Représente une valeur de date uniquement sans fuseau horaire, sous la forme année-mois-jour.

Il sʼagit dʼune description de la date, telle quʼelle est utilisée pour les anniversaires.

Format JSON : chaîne.

Format : AAAA-MM-JJ (ISO-8601), par exemple : « 2021-03-11 ».

Elle doit être encapsulée dans une fonction toDateOnly.

Il utilise DateTimeFormatter SO_LOCAL_DATE_TIME pour désérialiser et sérialiser la valeur. En savoir plus

Représentation littérale

date("<dateOnly in ISO-8601 format>")

Exemple

date("2021-02-19")

dateTimeOnly date-time-only

Description

Représente une valeur de date et d’heure sans fuseau horaire, sous la forme année-mois-jour-heure-minute-seconde-milliseconde.

Format JSON : chaîne.

Ce type ne stocke ni ne représente un fuseau horaire. Il s’agit plutôt d’une description de la date, telle qu’elle est utilisée pour les anniversaires, associée à l’heure locale telle qu’elle est affichée sur une horloge murale.

Il ne peut pas représenter un instant sur la ligne de temps sans informations supplémentaires telles qu’un décalage ou un fuseau horaire.

Elle doit être encapsulée dans une fonction toDateTimeOnly.

Format de sérialisation : format date-heure avec décalage étendu ISO-8601.

Il utilise DateTimeFormatter SO_LOCAL_DATE_TIME pour désérialiser et sérialiser la valeur. En savoir plus{_blank}.

Représentation littérale

date("<dateTimeOnly in ISO-8601 format>")

Exemples

date("2024-02-19T00.00.000")
date("2024-02-19T00.00")

dateTime date-time

Description

Constante de date et d’heure qui tient également compte du fuseau horaire. Elle représente une valeur de date et d’heure avec un décalage par rapport à UTC.

Elle peut être vue comme un point de la ligne du temps avec les informations supplémentaires du décalage. C’est une façon de représenter un « moment » précis en un point du globe.

Format JSON : chaîne.

Elle doit être encapsulée dans une fonction toDateTime.

Format de sérialisation : format date-heure avec décalage étendu ISO-8601.

Il utilise DateTimeFormatter ISO_OFFSET_DATE_TIME pour désérialiser et sérialiser la valeur. En savoir plus{_blank}.

Vous pouvez également transmettre un entier qui transmet une valeur d’époque. En savoir plus{_blank}.

Le fuseau horaire peut être spécifié par un décalage ou un code de fuseau horaire (par exemple : Europe/Paris, Z ; ce qui signifie UTC).

Représentation littérale

toDateTime("<dateTime in ISO-8601 format>")
date("<dateTime in ISO-8601 format>")
toDateTime(<integer value of an epoch in milliseconds>)

Exemples

date("2024-02-19T00.00.000Z")
toDateTime("1977-04-22T06:00:00Z")
toDateTime("2023-12-03T15:15:30Z")
toDateTime("2023-12-03T15:15:30.123Z")
toDateTime("2023-12-03T15:15:30.123+02:00")
toDateTime("2023-12-03T15:15:30.123-00:20")
toDateTime(1560762190189)

duration duration

Description

Ce type représente une durée basée sur le temps, telle que « 34,5 secondes ». Elle modélise une durée ou un laps de temps exprimé en millisecondes.

Les unités temporelles prises en charge sont les suivantes : millisecondes, secondes, minutes, heures, jours où un jour équivaut à 24 heures. Les années et les mois ne sont pas pris en charge, car ils ne représentent pas un laps de temps fixe.

Format JSON : chaîne.

Elle doit être encapsulée dans une fonction toDuration.

Format de sérialisation : pour désérialiser un identifiant de fuseau horaire, la fonction Java java.time est utilisée.

Duration.parse : les formats acceptés sont basés sur le format de durée ISO-8601 PnDTnHnMn.nS, avec des jours durant exactement 24 heures. En savoir plus{_blank}.

Représentation littérale

toDuration("<duration in ISO-8601 format>")
toDuration(<duration in milliseconds>)

Exemple

toDuration("PT5S") -- parses as 5 seconds
toDuration(500) -- parses as 500ms
toDuration("PT20.345S") -- parses as "20.345 seconds"
toDuration("PT15M") -- parses as "15 minutes" (where a minute is 60 seconds)
toDuration("PT10H")  -- parses as "10 hours" (where an hour is 3600 seconds)
toDuration("P2D") -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
toDuration("P2DT3H4M") -- parses as "2 days, 3 hours and 4 minutes"
toDuration("P-6H3M") -- parses as "-6 hours and +3 minutes"
toDuration("-P6H3M") -- parses as "-6 hours and -3 minutes"
toDuration("-P-6H+3M") -- parses as "+6 hours and -3 minutes"

list list

Description

Liste d’expressions séparées par des virgules utilisant des crochets comme délimiteurs.

Le polymorphisme n’est pas pris en charge. Par conséquent, toutes les expressions contenues dans la liste doivent être du même type.

Représentation littérale

[<expression>, <expression>, ... ]

Exemple

["value1","value2"]
[3,5]
[toDuration(500),toDuration(800)]
Référence des connaissances sur l’IA

Cette section contient des connaissances structurées destinées à soutenir l’interprétation, la récupération et la réponse aux questions liées à ce sujet.

Pour une compréhension totale, ces informations doivent être combinées avec la documentation de cette page. Aucune des sources n’est conçue pour être autonome. La page décrit la fonctionnalité, tandis que cette section fournit un contexte supplémentaire qui permet de clarifier la terminologie, l’intention, l’applicabilité et les contraintes.

  • TL;DR: Cette page décrit tous les types de données pris en charge dans l’éditeur d’expression avancé de Parcours (chaîne, entier, décimal, booléen, dateOnly, dateTimeOnly, dateTime, durée et liste), ainsi que leurs formats JSON, règles de sérialisation et syntaxe de représentation littérale.

Intentions:

  • Identifier la syntaxe littérale correcte pour chaque type de données lors de l’écriture d’expressions de parcours
  • Comprenez la différence entre les types dateOnly, dateTimeOnly et dateTime et quand les utiliser
  • Représente une valeur de durée au format ISO-8601 ou en millisecondes avec la fonction toDuration()
  • Construire une expression de liste avec des crochets syntaxiques à utiliser dans les opérations de collection
  • Utilisez des fonctions de conversion (toDateTime, toDateTimeOnly, toDuration, toDateOnly) pour créer des constantes typées

Glossaire:

  • dateOnly : date sans fuseau horaire, au format AAAA-MM-JJ ; adaptée aux dates d’anniversaire ou de calendrier (spécifiques au produit)
  • dateTimeOnly : date et heure sans informations de fuseau horaire ; ne peut pas représenter un instant spécifique sans de décalage (spécifique au produit)
  • dateTime : constante date-heure qui comprend un décalage UTC, représentant un instant spécifique. Elle peut également être créée à partir d’un entier d’époque (spécifique au produit)
  • durée : quantité basée sur le temps modélisée en millisecondes ; utilise le format de PnDTnHnMn.nS ISO-8601 ; les années et les mois ne sont pas pris en charge (spécifiques au produit)
  • list : collection d’expressions du même type séparées par des virgules, délimitées par des crochets (spécifiques au produit)

Mécanismes de sécurisation :

  • La durée prend uniquement en charge les millisecondes, les secondes, les minutes, les heures et les jours. Les années et les mois ne sont pas pris en charge, car il ne s’agit pas de périodes fixes
  • Une valeur duration doit être encapsulée dans toDuration() — elle ne peut pas être exprimée sous la forme d’un littéral nu
  • Toutes les expressions d’un list doivent avoir le même type — le polymorphisme n’est pas pris en charge
  • dateTimeOnly ne peut pas représenter un instant dans le temps sans décalage ou fuseau horaire supplémentaire

Terminologie:

  • Nom canonique : Types de données — Acronyme : none — variantes : types de données d’expression, types de données de parcours
  • Synonymes : « dateTime » = « date-heure avec fuseau horaire »; « dateTimeOnly » = « date-heure locale »
  • Ne pas confondre : dateOnly (pas d’heure) ≠ dateTimeOnly (date + heure, pas de fuseau horaire) ≠ dateTime (date + heure + fuseau horaire/décalage)

FAQ:

  • Q : Quelle est la différence entre dateTimeOnly et dateTime ?dateTimeOnly n’a ni fuseau horaire ni décalage et ne peut pas représenter un instant précis ; dateTime inclut un décalage UTC et représente un moment spécifique dans le temps.
  • Q : Comment exprimer une durée de 2 jours et 3 heures ? — Utiliser toDuration("P2DT3H").
  • Q : Puis-je mélanger des entiers et des chaînes dans une expression de liste ? — Non ; toutes les expressions d’une liste doivent être du même type.
  • Q : Comment créer un dateTime à partir d’un horodatage d’époque en millisecondes ? — Utilisez toDateTime(<epoch in milliseconds>), par exemple toDateTime(1560762190189).
  • Q : Le littéral booléen true ou True-il correct ? — Utilisez des true ou des false en minuscules ; les variantes en majuscules ne sont pas valides.
recommendation-more-help
journey-optimizer-help