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 pour but d'enregistrer l'instant associé à la détection du début et/ou de la fin de l'exécution d'une opération machine.

Tampon d'horodatage allemand, utilisé pour horodater des documents avec l'heure et la date actuelle, aux environs de 1960.

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.

Histoire

modifier

En 1905, des horo-dateurs ou horodateurs sont utilisés dans certaines compétitions sportives, pour imprimer automatiquement sur le carnet de bord de l'automobile l'heure exacte du passage, comme par exemple lors de la quinzaine d'Aix les Bains[2] ou la Coupe des Pyrénées[3].

En 1934, les télégrammes sont horodatés[4]. En 1937, les fiches des taxis parisiens sont également horodatées[5].

En 1943, l'horodatage existe dans les petites et moyennes entreprises[6].

Informatique

modifier

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 attribut 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 méthode pour décompter le temps n'est cependant pas systématique : les systèmes UNIX décomptent à partir du 1er janvier 1970 à 0 h, alors que le système openVMS, utilise par exemple 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
Exemple d'un horodatage ACARS
Horodatage ATA Message ACARS Chapitre ATA Signification du message[7]
00:26Z 3044 ANTI ICE R WINDOW Protection givre et pluie Dégivrage de fenêtre droite
00:26Z 561200 R SLIDING WINDOW SENSOR Fenêtres Capteur de la fenêtre droite coulissante
00:26Z 2600 SMOKE LAVATORY SMOKE Protection incendie Fumée dans les toilettes
00:27Z 2600 AVIONICS SMOKE Protection incendie Fumée dans l'avionique (ordinateurs de bord : système de pilotage)
00:28Z 561100 R FIXED WINDOW SENSOR Fenêtres Capteur de la fenêtre droite fixe
00:29Z 2200 AUTO FLT FCU 2 FAULT Pilote automatique Défaillance du pilotage automatique no 2
00:29Z 2700 F/CTL SEC 3 FAULT Commandes de vol Défaillance du système de pilotage no 3 (ailerons)

Réalisation

modifier

Monde Unix

modifier

Dans le monde Unix, majoritairement utilisé sur les serveurs connectés à internet, l'horodatage est principalement réalisé sur la base de l'Unix Timestamp. Il est possible de l'obtenir dans un Terminal à l'aide de la commande :

date +%s

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 à 14 h 30 min 50 s
//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 {{date-|1 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();

En Excel

modifier

Pour convertir un timestamp en date avec le tableur Excel, on peut utiliser la formule suivante:

=ENT(((A1/60)/60)/24)+DATE(1970;1;1)

Cryptographie

modifier

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[8]. Ce mécanisme est souvent utilisé conjointement avec la signature électronique. 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[9] définit un protocole d'horodatage applicable par une autorité d'horodatage.

L'horodatage électronique permet ainsi de protéger ses droits d'auteur en créant une preuve d'antériorité. Plusieurs outils sont disponibles afin d'assurer la création de ce genre de preuve, notamment grâce à la blockchain.

L'horodatage électronique est parfois également appelé "contremarque de temps"[10].

Notes et références

modifier
  1. CERTA, « Gestion des journaux d'événements »,
  2. « L'Auto-vélo : automobilisme, cyclisme, athlétisme, yachting, aérostation, escrime, hippisme », sur Gallica, (consulté le ).
  3. « La Dépêche : journal quotidien », sur Gallica, (consulté le )
  4. télégraphes et téléphones (1929-1959) Auteur du texte France. Ministère des postes, « Bulletin d'informations / Ministère des Postes, télégraphes et téléphones, Direction du service central (Bureau d'études, de documentation et de statistique) », sur Gallica, (consulté le )
  5. « Le Bulletin législatif Dalloz : lois, décrets, arrêtés, circulaires, etc. », sur Gallica, (consulté le ).
  6. 1er Cycle d'études de l'organisation rationnelle dans les petites et moyennes entreprises , 25-28 octobre 1943..., (lire en ligne)
  7. (en) Raf Sanchez, « Smoke in the cabin: what does the data from EgyptAir MS804's sensors mean? », The Daily Telegraph,‎ (lire en ligne).
  8. « FNTC », sur fntc.org (consulté le ).
  9. (en) http://www.ietf.org/rfc/rfc3161.txt
  10. « Décret n° 2011-434 du 20 avril 2011 relatif à l'horodatage des courriers expédiés ou reçus par voie électronique pour la conclusion ou l'exécution d'un contrat - Légifrance », sur www.legifrance.gouv.fr (consulté le )

Voir aussi

modifier

Autres significations

modifier

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 à 00:00:00 UTC ;
  • ICMP Timestamp, un identifiant que l'on retrouve dans les paquets ICMP.

Liens externes

modifier