Traitements et affichages des dates
GenericsData &
HandleData
Afin de simplifier la lecture, les objets de type TimeStamp sont décrits dans DataChain et la documentation comme étant des Dates (avec une majuscule). Les valeurs représentant des dates qui ne sont pas de type Date (Chaîne de caractère ou Numérique) sont désignées comme des dates (avec une minuscules). |
Affichage dans DataChain
Afin de simplifier la lecture et la manipulation des Dates sur toute la chaîne de valeurs, les Dates sont affichées par défaut avec un masque d’affichage du format ISO 8601 simplifié.
Le fuseau horaire dépend des paramètres de votre instance DataChain (UTC par défaut), contactez un administrateur DataChain en cas de doute.
Au survol, les Dates s’affichent toujours au format ISO 8601 complet et en UTC, peu importe le masque d’affichage appliqué.
-
ISO simplifié en UTC : 2023-09-01 13:42:24
-
ISO complet en UTC : 2032-09-01T13:42:24:000Z
Manipuler les dates avec les masques
Différents traitements peuvent être effectués sur les dates à partir de masques d’affichage, de lecture et d’écriture.
Masque de lecture
Lors d’une intégration rapide, du mapping d’une Entité Métier, ou pour convertir une colonne de DataBlock en sortie d’étape, le masque de lecture permet de préciser de quelle manière transformer les valeurs manipulées.
Vous devez préciser le masque de lecture à utiliser pour créer l’Entité Métier lors d’une intégration rapide.
Vous devez préciser le masque de lecture, ainsi que le fuseau et la langue, à utiliser lors du Mapping d’une Entité Métier.
Vous devez préciser le masque de lecture à utiliser, ainsi que le fuseau et la langue, lorsque vous modifiez le type d’une colonne en sortie d’étape de DataBlock.
Masque d’affichage
Lors de la configuration d’une sortie d’étape d’un DataBlock ou d’une source HandleData vous pouvez modifier le masque d’affichage à appliquer.
Le masque d’affichage utilisé par défaut est au format ISO simplifié.
Vous pouvez aussi, si besoin, modifier le fuseau et la langue.
Masque d’écriture
2 formules permettent de transformer les dates au format chaîne de caractères et les Dates.
-
date.to_strz transforme une Date en Chaîne de caractères à partir d’un masque d’écriture, d’un fuseau et d’une langue
-
str.to_datez transforme une Chaîne de caractères en Date à partir d’un masque de lecture, d’un fuseau et d’une langue
Définir le fuseau horaire et la langue
Il est possible de modifier le fuseau horaire à utiliser dans les masques d’affichage et d’écriture afin de préciser le décalage horaire à appliquer par rapport à l’horaire UTC.
Le choix de la langue permet de préciser la langue à utiliser pour les masques contenant des valeurs de type chaînes de caractères (lundi, mardi, janvier…).
Fuseau horaire
En france, cela induit un décalage d’une heure ou deux heures selon que nous sommes en heures d’été ou en heure d’hiver. La date UTC permet de conserver la précision, même en cas de changement d’heure. En France, en 2024, le passage à l’heure d’hiver se déroulera dans la nuit du samedi 26 au dimanche 27 octobre 2024. Vous devez reculer votre montre d’une heure : à 3 heures du matin, il sera alors 2 heures.
Si une date est notée dans une source de donnée, et qu’elle indique le 27 octobre 2024 à 2h30 du matin dans le fuseau horaire de Paris, est-ce avant le changement d’heure ou après. En effet, lors du changement d’heure, cette heure est donc présente 2 fois.
Dans le cadre d’une date UTC, nous aurons comme date le 27 octobre 2024 à 0h30 qui correspond à l’heure de Paris 27 octobre 2024 à 2h30 avant le changement d’heure, puis le 27 octobre 2024 à 1h30 qui correspond à l’heure de Paris après le changement d’heure.
Pays concerné
Pour les conversions de date en Chaines et inverse, l’application demande en général 3 informations : L’information de la date, le fuseau horaire (Paris par exemple), et la "locale" i.e. le lieu correspondant à la date.
Nous avons abordé les effets du fuseau horaire dans le chapitre précédent. Concernant le pays, nous allons travailler sur un exemple de manipulation de semaines dans une année.
Les règles concernant les semaines sont les suivantes :
-
en France, les semaines commencent le lundi et se terminent le dimanche.
-
aux Etats-Unis, les semaines commencent le dimanche et se terminent le samedi.
Lorsque qu’une semaine se trouve à un changement de mois ou d’année, la règle est de l’attribuer au mois ou à l’année qui le plus de jours de la semaine. Si la semaine a 4 jours sur le mois précédent et 3 sur le suivant, alors elle 'appartient' au mois précédent.
Exemple : semaine du 31 janvier 2024

En France, la semaine comporte 3 jours sur le mois de janvier, et 4 sur le mois de février, c’est donc la première semaine du mois de février.
Au Etat-Unis, la semaine comporte 4 jours sur le mois de janvier, et 3 sur le mois de février, c’est donc la dernière semaine du mois de janvier.
Personnaliser les masques
Il est possible de personnaliser le masque à partir des valeurs acceptées.
Les valeurs les plus couramment utilisées sont décrites dans le tableau ci-dessous, pour connaître l’ensemble des valeurs acceptées, référez-vous à la documentation Oracle disponible en ligne.
Valeur | Rendu | Exemple |
---|---|---|
D |
Jour dans l’année |
156 |
d |
Jour dans le mois |
29 |
EEEE |
Jour de la semaine |
Vendredi |
MM |
Mois de l’année sur deux chiffres |
09 |
MMM |
Abréviation du nom du mois de l’année |
sept. |
MMMM |
Mois de l’année complet |
Septembre |
yy |
Année sur deux chiffres |
23 |
yyyy |
Année sur quatre chiffres |
2023 |
hh |
Heure sur 24h |
22 |
HH |
Heure au format AM/PM (sur 12h) |
10 |
ss |
Secondes |
42 |
Z |
Décalage de l’horaire avec l’heure UTC |
+02 |
Utiliser des modèles de masque pré-configurés
DataChain propose un certain nombre de modèles de masques pré-configurés disponibles pour la lecture, l’affichage ou l’écriture.
Modèle |
Exemple |
yyyyMMdd |
20231002 |
ddMMyyyy |
02102023 |
dd/MM/yyyy |
02/10/2023 |
dd-MM-yyyy |
02-10-2023 |
yyyy/MM/dd |
2023/10/02 |
yyyy-MM-dd |
2023-10-02 |
dd/MM/yyyy HH:mm |
02/10/2023 10:42 |
dd-MM-yyyy HH:mm |
02-10-2023 10:42 |
yyyy/MM/dd HH:mm |
2023/10/02 10:42 |
yyyy-MM-dd HH:mm |
2023-02-10 10:42 |
dd/MM/yyyy HH:mm:ss |
02/10/2023 10:42:55 |
dd/MM/yyyy HH:mm:ss.SSS |
02/10/2023 10:42:55.915 |
dd-MM-yyyy HH:mm:ss |
02-10-2023 10:42:55 |
dd-MM-yyyy HH:mm:ss.SSS |
02-10-2023 10:42:55.915 |
yyyy/MM/dd HH:mm:ss |
2023/10/02 10:42:55 |
yyyy/MM/dd HH:mm:ss.SSS |
2023/10/02 10:42:55.915 |
yyyy-MM-dd HH:mm:ss |
2023-10-02 10:42:55 |
yyyy-MM-dd HH:mm:ss.SSS |
2023-10-02 10:42:55.915 |
HH |
10 |
HH:mm |
10:42 |
HH:mm:ss |
10:42:55 |
HH:mm:ss.SSS |
10:42:55.915 |
EEEE dd MM yyyy |
lundi 02 10 2023 |
EEEE dd MMM yyyy |
lundi 02 oct. 2023 |
EEEE dd M yyyy HH’h’mm |
lundi 02 10 2023 10h42 |
yyyy |
2023 |
EEEE |
lundi |
MMMM |
octobre |
MMMM - yyyy |
oct.-23 |
w - YYYY |
40 - 2023 |
W - MMMM - yyyy |
01-oct.-23 |
EEEE - yyyy |
lundi - 2023 |
EEEE-HH |
lundi-10 |
dd-MM-yyyy HH:mm:ssX |
02-10-2023 10:42:55+02 |
dd-MM-yyyy HH:mm:ssXX |
02-10-2023 10:42:55+0200 |
dd-MM-yyyy HH:mm:ssXXX |
02-10-2023 10:42:55+02:00 |
dd-MM-yyyy HH:mm:ssXXXX |
02-10-2023 10:42:55+0200 |
dd-MM-yyyy HH:mm:ssXXXXX |
02-10-2023 10:42:55+02:00 |
dd-MM-yyyy HH:mm:ss.SSSX |
02-10-2023 10:42:55.955+02 |
dd-MM-yyyy HH:mm:ss.SSSXX |
02-10-2023 10:42:55.955+0200 |
dd-MM-yyyy HH:mm:ss.SSSXXX |
02-10-2023 10:42:55.955+02:00 |
dd-MM-yyyy HH:mm:ss.SSSXXXX |
02-10-2023 10:42:55.955+0200 |
dd-MM-yyyy HH:mm:ss.SSSXXXXX |
02-10-2023 10:42:55.955+02:00 |
yyyy-MM-dd HH:mm:ssX |
2023-10-02 10:42:55+02 |
yyyy-MM-dd HH:mm:ssXX |
2023-10-02 10:42:55+0200 |
yyyy-MM-dd HH:mm:ssXXX |
2023-10-02 10:42:55+02:00 |
yyyy-MM-dd HH:mm:ssXXXX |
2023-10-02 10:42:55+0200 |
yyyy-MM-dd HH:mm:ssXXXXX |
2023-10-02 10:42:55+02:00 |
yyyy-MM-dd HH:mm:ss.SSSX |
2023-10-02 10:42:55.955+02 |
yyyy-MM-dd HH:mm:ss.SSSXX |
2023-10-02 10:42:55.955+0200 |
yyyy-MM-dd HH:mm:ss.SSSXXX |
2023-10-02 10:42:55.955+02:00 |
yyyy-MM-dd HH:mm:ss.SSSXXXX |
2023-10-02 10:42:55.955+0200 |
yyyy-MM-dd HH:mm:ss.SSSXXXXX |
2023-10-02 10:42:55.955+02:00 |
yyyy-MM-dd HH:mm:ss.SSSSSS |
2023-10-02 10:42:55.955441 |
yyyy-MM-dd HH:mm:ss.SSSSSSX |
2023-10-02 10:42:55.955441+02 |
yyyy-MM-dd HH:mm:ss.SSSSSSXX |
2023-10-02 10:42:55.955441+0200 |
yyyy-MM-dd HH:mm:ss.SSSSSSXXX |
2023-10-02 10:42:55.955441+02:00 |
yyyy-MM-dd HH:mm:ss.SSSSSSXXXX |
2023-10-02 10:42:55.955441+0200 |
yyyy-MM-dd HH:mm:ss.SSSSSSXXXXX |
2023-10-02 10:42:55.955441+02:00 |
yyyy-MM-dd HH:mm:ss.SSSSSSSSS |
2023-10-02 10:42:55.955441000 |
yyyy-MM-dd HH:mm:ss.SSSSSSSSSX |
2023-10-02 10:42:55.955441000+02 |
yyyy-MM-dd HH:mm:ss.SSSSSSSSSXX |
2023-10-02 10:42:55.955441000+0200 |
yyyy-MM-dd HH:mm:ss.SSSSSSSSSXXX |
2023-10-02 10:42:55.955441000+02:00 |
yyyy-MM-dd HH:mm:ss.SSSSSSSSSXXXX |
2023-10-02 10:42:55.955441000+0200 |
yyyy-MM-dd HH:mm:ss.SSSSSSSSSXXXXX |
2023-10-02 10:42:55.955441000+02:00 |
yyyy-MM-dd’T’HH:mm:ssX |
2023-10-02T10:42:55+02 |
yyyy-MM-dd’T’HH:mm:ssXX |
2023-10-02T10:42:55+0200 |
yyyy-MM-dd’T’HH:mm:ssXXX |
2023-10-02T10:42:55+02:00 |
yyyy-MM-dd’T’HH:mm:ssXXXX |
2023-10-02T10:42:55+0200 |
yyyy-MM-dd’T’HH:mm:ssXXXXX |
2023-10-02T10:42:55+02:00 |
yyyy-MM-dd’T’HH:mm:ss.SSSX |
2023-10-02T10:42:55.955+02 |
yyyy-MM-dd’T’HH:mm:ss.SSSXX |
2023-10-02T10:42:55.955+0200 |
yyyy-MM-dd’T’HH:mm:ss.SSSXXX |
2023-10-02T10:42:55.955+02:00 |
yyyy-MM-dd’T’HH:mm:ss.SSSXXXX |
2023-10-02T10:42:55.955+0200 |
yyyy-MM-dd’T’HH:mm:ss.SSSXXXXX |
2023-10-02T10:42:55.955+02:00 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSX |
2023-10-02T10:42:55.955441+02 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSXX |
2023-10-02T10:42:55.955441+0200 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSXXX |
2023-10-02T10:42:55.955441+02:00 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSXXXX |
2023-10-02T10:42:55.955441+0200 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSXXXXX |
2023-10-02T10:42:55.955441+02:00 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSSSSX |
2023-10-02T10:42:55.955441000+02 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSSSSXX |
2023-10-02T10:42:55.955441000+0200 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSSSSXXX |
2023-10-02T10:42:55.955441000+02:00 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSSSSXXXX |
2023-10-02T10:42:55.955441000+0200 |
yyyy-MM-dd’T’HH:mm:ss.SSSSSSSSSXXXXX |
2023-10-02T10:42:55.955441000+02:00 |