Horodatage
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, même si les lois de la physique font que la date et l'heure de l'horodatage ne peuvent qu'être postérieures à l'instant en question.
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
En 1905, des horo-dateurs ou horodateurs sont utilisé dans certaines compétition 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
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
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
PHP
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
Pour convertir un timestamp en date sous Excel, on peut utiliser la formule suivante:
=ENT(((A1/60)/60)/24)+DATE(1970;1;1)
Cryptographie
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
- CERTA, « Gestion des journaux d'événements »,
- https://gallica.bnf.fr/ark:/12148/bpt6k4626998g/f1.item.r=horodateur.zoom
- « La Dépêche : journal quotidien », sur Gallica, (consulté le )
- 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 )
- https://gallica.bnf.fr/ark:/12148/bpt6k54742262/f483.image.r=horodat%C3%A9?rk=3197440;4
- 1er Cycle d'études de l'organisation rationnelle dans les petites et moyennes entreprises , 25-28 octobre 1943..., (lire en ligne)
- (en) Raf Sanchez, « Smoke in the cabin: what does the data from EgyptAir MS804's sensors mean? », The Daily Telegraph, (lire en ligne).
- http://www.fntc.org/content/view/524/54/
- (en) http://www.ietf.org/rfc/rfc3161.txt
- « 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
- Epoch
- Bug de l'an 2038
- Horodateur
- Marque postale#Le timbre à date
- Oblitération#Cachets à date postaux
- Oblitération#Cachets à date fiscaux
- Référentiel général de sécurité
Autres significations
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.