Traitements et affichages des dates

Logo GenericsData GenericsData & Logo HandleData 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).

En résumé

  • Les Dates sont affichées par défaut dans la norme de représentation ISO 8601 (simplifié) et en UTC

  • Au survol les Dates sont toujours affichées dans la norme de représentation ISO 8601 complet et en UTC, peu importe le masque d’affichage paramétré

  • Les Dates peuvent être affichées et transformées à l’aide de masques

    • de lecture : pour interpréter les valeurs de type Chaînes de caractères en type Date

    • d’affichage : pour modifier la manière de représenter les Dates dans les interfaces

    • d’écriture : pour transformer les Dates en Chaîne de caractères

  • Il est possible d’utiliser des modèles de masques proposés par DataChain ou de les personnaliser à partir des valeurs acceptées

  • Le fuseau détermine le décalage horaire à appliquer par rapport à l’horaire UTC

  • La langue permet de préciser la langue à utiliser pour les valeurs écrites en chaînes de caractères (lundi, mardi, Janvier…​)

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.

Création Entité via Intégration rapide
Dates -Création d’une Entité Métier depuis l’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.

Mapping Entité
Dates -Modification 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.

Changement type DataBlock
Dates -Modification du type d’une colonne dans un 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.

Changement type DataBlock
Dates -Modification de l’affichage en sortie d’étape de DataBlock ou d’une source

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

calendrier

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