Horodatage

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L'horodatage (en anglais timestamping) est un mécanisme qui consiste à associer une date et une heure à un événement, une information ou une donnée informatique. Il a généralement pour but d'enregistrer l'instant auquel une opération a été effectuée.

La valeur représentant la date et l'heure est appelée timestamp (de l'anglais time, « heure » et stamp, marquage par un timbre ou un tampon) ou tout simplement « horodatage ». Il peut s'agir d'une séquence de caractères (groupe date-heure) représentant la date et l'heure sous une forme intelligible. En informatique, ce type de format est souvent utilisé dans les journaux d'événements[1]. Un timestamp peut aussi désigner un compteur numérique représentant une quantité de temps écoulée depuis un instant de référence, comme dans le système de l'heure Unix. Le timestamp se distingue alors de la date et de l'heure entendues comme un ensemble de valeurs année/mois/jour et heure/minute/seconde, la conversion pouvant se faire de l'un à l'autre.

En cryptographie, l'horodatage est un ensemble de techniques consistant à associer de manière sûre une date et une heure de référence à des données, dans le but de prouver l'existence de ces données avant une certaine date[2]. Ce mécanisme est souvent utilisé conjointement avec la signature numérique. L'obtention d'une date et heure de référence nécessite généralement l'utilisation des services d'un tiers horodateur de confiance, ou autorité d'horodatage. La RFC 3161[3] définit un protocole d'horodatage applicable par une autorité d'horodatage.

Informatique[modifier | modifier le code]

En informatique, l'horodatage est fréquemment employé dans les journaux d'événements (ou historiques). Il se traduit habituellement sous la forme d'une séquence de caractères représentant la date et l'heure à laquelle est survenu un événement, associée à un texte décrivant ledit événement. La date et l'heure sont généralement représentées de façon à faciliter la comparaison entre événements, ce qui permet de suivre le déroulement d'un ensemble d'opération de manière relativement aisée. La norme internationale ISO 8601 spécifie une représentation de la date et de l'heure universelle.

Dans un système de fichiers, un timestamp peut désigner un identifiant indiquant la date de création ou de modification d'un fichier ou d'un dossier. De même, dans une base de données, un timestamp peut correspondre à la date de création ou de modification d'un enregistrement.

Ce compteur est universel et international : il ne compte pas les changements d'heures ni de fuseaux horaires, ce qui est pratique en informatique pour comparer des dates ou pour certains calculs. Toutefois, cela oblige à faire des conversions complexes avant d'afficher une date (ou pour en lire une). Heureusement la plupart des langages ont des fonctions qui se chargent des conversions de ce type, en tenant compte des fuseaux horaires. Cette façon de décompter le temps n'est cependant pas aussi universelle que ça : les systèmes UNIX décomptent à partir du 1er janvier 1970 à 0 h, alors que le système VMS, pour n'en citer qu'un, utilise le Jour julien modifié.

Exemples de séquences d'horodatage :

2008-04-22T06:00:00Z
1997-11-09 T 11:20 UTC
Sat Jul 23 02:16:57 2005

Réalisation[modifier | modifier le code]

PHP[modifier | modifier le code]

En PHP, son utilisation se présente sous la forme suivante :

$timestamp_actuel = time();
$timestamp = mktime(14, 30, 50, 03, 21, 1992); //Retourne le timestamp du 21 mars 1992 à 14h 30min 50s
//ce qui donne le nombre : 701184650

Pour la commande mktime, l'implémentation POSIX spécifie que le paramètre est une structure.

Il existe d'autres fonctions permettant de manipuler des timestamps, parmi lesquelles on peut citer strtotime() (de l'anglais string to time, soit en français "conversion d'une chaîne de caractères en une date") et à utiliser comme cela :

// La variable $today sera égale au timestamp d'aujourd'hui 0h00
$today = strtotime ('today');
// La variable $tomorrow sera égale au timestamp de demain 19h00
$tomorrow = strtotime ('tomorrow 19:00');
// La variable $special sera égale au timestamp du 1{{er}} janvier 1970 plus deux jours et trois heures
$special = strtotime ('01/01/1970 +2 days +3 hours');

Ou encore date() qui affiche une date dans un certain format à partir d'un timestamp :

$s = strtotime ('10/30/1987'); // $s est égal à 562546800
$d = date ('d-m-Y', $s); // $d est égal à 30-10-1987

Il est également possible d'obtenir le timestamp actuel en microsecondes, cette méthode est généralement utilisée pour calculer le temps d'exécution d'un script ou d'une requête SQL ou pour générer un ID unique.

$TpsMicrosecondes = microtime();

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Autres significations[modifier | modifier le code]

Un timestamp peut aussi désigner :

  • un code temporel, ou time code, utilisé dans les domaines du son et de l'image ;
  • l'heure Unix, le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC­ ;
  • ICMP Timestamp, un identifiant que l'on retrouve dans les paquets ICMP.

Liens externes[modifier | modifier le code]