SAP ABAP - Date et heure

ABAP fait implicitement référence au calendrier grégorien, valable dans la plupart des pays du monde. Nous pouvons convertir la sortie en calendriers spécifiques au pays. Une date est une heure spécifiée à un jour, une semaine ou un mois précis par rapport à un calendrier. Une heure est spécifiée à une seconde ou à une minute précise par rapport à un jour. ABAP économise toujours du temps au format 24 heures. La sortie peut avoir un format spécifique au pays. Les dates et l'heure sont généralement interprétées comme des dates locales valides dans le fuseau horaire actuel.

ABAP fournit deux types intégrés pour travailler avec les dates et l'heure -

  • Type de données D
  • Type de données T

Voici le format de base -

DATA: date TYPE D, 
      time TYPE T.  
	
DATA: year TYPE I, 
month TYPE I,  
day TYPE I, 
hour TYPE I,  
minute TYPE I, 
second TYPE I.

Ces deux types sont des types de caractères de longueur fixe qui ont respectivement la forme AAAAMMJJ et HHMMSS.

Horodatages

En plus de ces types intégrés, les deux autres types TIMESTAMP et TIMESTAMPLsont utilisés dans de nombreuses tables d'application standard pour stocker un horodatage au format UTC. Le tableau suivant montre les types de date et d'heure de base disponibles dans ABAP.

S.No. Type de données et description
1

D

Un type de date de longueur fixe intégré au format AAAAMMJJ. Par exemple, la valeur 20100913 représente la date du 13 septembre 2010.

2

T

Un type de temps de longueur fixe intégré de la forme HHMMSS. Par exemple, la valeur 102305 représente l'heure 10:23:05 AM.

3

TIMESTAMP (Type P - Longueur 8 sans décimales)

Ce type est utilisé pour représenter des horodatages courts au format AAAAMMJJhhmmss. Par exemple, la valeur 20100913102305 représente la date du 13 septembre 2010 à 10 h 23 min 05 s.

4

TIMESTAMPL (Type P - Longueur 11 décimales 7)

TIMESTAMPL représente des horodatages longs au format AAAAMMJJhhmmss, mmmuuun. Ici, les chiffres supplémentaires «mmmuuun» représentent les fractions de seconde.

Date et heure actuelles

Les extraits de code suivants récupèrent la date et l'heure système actuelles.

REPORT YR_SEP_15. 
DATA: date_1 TYPE D. 

date_1 = SY-DATUM. 
Write: / 'Present Date is:', date_1 DD/MM/YYYY. 

date_1 = date_1 + 06. 
Write: / 'Date after 6 Days is:', date_1 DD/MM/YYYY.

Le code ci-dessus produit la sortie suivante -

Present Date is: 21.09.2015 
Date after 6 Days is: 27.09.2015

La variable date_1 reçoit la valeur de la date système courante SY-DATUM. Ensuite, nous incrémentons la valeur de date de 6. En termes de calcul de date dans ABAP, cela implique que nous augmentons la composante jour de l'objet date de 6 jours. L'environnement d'exécution ABAP est suffisamment intelligent pour reporter la valeur de la date chaque fois qu'elle atteint la fin d'un mois.

Les calculs de temps fonctionnent de la même manière que les calculs de date. Le code suivant incrémente l'heure système actuelle de 75 secondes à l'aide de l'arithmétique temporelle de base.

REPORT YR_SEP_15. 
DATA: time_1 TYPE T. 
      time_1 = SY-UZEIT. 

Write /(60) time_1 USING EDIT MASK 
'Now the Time is: __:__:__'. 
time_1 = time_1 + 75. 

Write /(60) time_1 USING EDIT MASK 
'A Minute and a Quarter from Now, it is: __:__:__'.

Le code ci-dessus produit la sortie suivante -

Now the Time is 11:45:05 
A Minute and a Quarter from Now, it is: 11:46:20

Utilisation des horodatages

Vous pouvez récupérer l'heure système actuelle et la stocker dans une variable d'horodatage en utilisant GET TIME STAMPcomme indiqué dans le code suivant. L'instruction GET TIME STAMP stocke l'horodatage dans un format long ou court selon le type de l'objet de données d'horodatage utilisé. La valeur d'horodatage est codée à l'aide de la norme UTC.

REPORT YR_SEP_12. 
DATA: stamp_1 TYPE TIMESTAMP,
 
stamp_2 TYPE TIMESTAMPL. 
GET TIME STAMP FIELD stamp_1. 
Write: / 'The short time stamp is:', stamp_1 

TIME ZONE SY-ZONLO. 
GET TIME STAMP FIELD stamp_2. 
Write: / 'The long time stamp is:', stamp_2 
TIME ZONE SY-ZONLO.

Le code ci-dessus produit la sortie suivante -

The short time stamp is: 18.09.2015 11:19:40 
The long time stamp is: 18.09.2015 11:19:40,9370000

Dans l'exemple ci-dessus, nous affichons l'horodatage à l'aide de l'ajout TIME ZONE de l'instruction WRITE. Cet ajout met en forme la sortie de l'horodatage selon les règles du fuseau horaire spécifié. Le champ système SY-ZONLO permet d'afficher le fuseau horaire local configuré dans les préférences de l'utilisateur.