Epoch
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Comprendre l'utilisation des timestamp ;
Passer d'une date à un timestamp et inversement.
Mise en situation
Peu importe le format ou la langue de la date, il existe une manière universelle de l'exprimer : en nombre de millisecondes.
Définition : Epoch
L'epoch désigne la date à partir de laquelle est mesuré le temps par les systèmes d'exploitation. Il en existe plusieurs, le plus connu étant l'Unix Epoch (aussi appelé POSIX time).
Il est utilisé par la plupart des langages (JavaScript, Python, C, C++, PHP, etc.) et par les systèmes basés sur Unix.
L'Unix Epoch est fixé au 1er janvier 1970 et est utilisé pour calculer le timestamp dans ces langages.
Définition : Timestamp
Le timestamp est un nombre entier qui compte la durée écoulée depuis une certaine date. On peut passer d'un timestamp à une date et inversement.
Dans le cas des langages comme JavaScript et Python qui utilisent l'Unix Epoch, le timestamp représente le nombre de millisecondes écoulées depuis le 1er janvier 1970.
Syntaxe :
En Python, datetime.timestamp()
transforme la date en paramètre en timestamp. datetime.fromtimestamp()
permet à l'inverse de transformer le timestamp en date.
En JavaScript, le getter getTime()
récupère le timestamp à partir de la date. Pour passer d'un timestamp à une date, on peut simplement utiliser Date()
avec le timestamp en paramètre.
Exemple : Date to Timestamp
"""Python: affiche le timestamp de la date courante."""
import datetime
today = datetime.datetime.now()
print(datetime.datetime.timestamp(today))
/** JavaScript: affiche le timestamp de la date courante */
const today = new Date()
console.log(today.getTime())
Exemple : Timestamp to Date
"""Python: affiche la date de l'epoch Unix (1970-01-01)."""
import datetime
timestamp = 0
date = datetime.datetime.fromtimestamp(timestamp)
print(date)
/** JavaScript: affiche la date de l'epoch Unix (1970-01-01) */
const timestamp = 0
const day = new Date(timestamp)
console.log(day)
Complément : Le bug de l'an 2038
Le bug de l'an 2038 est prévu pour le 19 janvier 2038 à 3 h 14 min 8 s. C'est un bug informatique qui perturberait certains systèmes informatiques à cause de la taille du timestamp à partir de cette date. Ils retomberaient alors au 13 décembre 1901 à 20 h 45 min 52 s.
Voir Bug de l'an 2038 pour plus d'informations.
À retenir
Les dates sont souvent représentées comme un nombre de millisecondes écoulées depuis le 1er janvier 1970. Un tel nombre est appelé timestamp, et il est possible de convertir un timestamp en date et inversement.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.