ToolHub
View All Posts

Guide complet des timestamps Unix : conversion entre formats

Le timestamp Unix est l'un des concepts les plus fondamentaux en informatique, mais de nombreux développeurs et professionnels des données restent confus à son sujet. Que vous déboguiez une réponse d'API, analysiez des fichiers de logs ou construisiez un système de planification, comprendre le fonctionnement des timestamps Unix et comment convertir entre formats est une compétence essentielle.

Qu'est-ce qu'un timestamp Unix ?

Le timestamp Unix, également appelé epoch time ou temps POSIX, est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC (hors secondes intercalaires). Ce point de référence est appelé l'époque Unix. Les timestamps sont stockés sous forme d'un seul entier, ce qui facilite la comparaison, le tri et le calcul des différences de temps.

Par exemple, le timestamp Unix 1700000000 correspond au 14 novembre 2023 à 22:13:20 UTC. La simplicité de représenter le temps comme un seul nombre fait du timestamp Unix le standard de représentation du temps dans les systèmes d'exploitation, les bases de données et les langages de programmation.

Pourquoi utiliser les timestamps Unix

Formats de timestamp courants

Différents systèmes utilisent différents formats de timestamp. Comprendre ces différences vous aide à convertir avec précision entre eux.

FormatExempleUtilisé par
Unix secondes1700000000Linux, API, bases de données
Unix millisecondes1700000000000JavaScript, Java
Unix microsecondes1700000000000000Python, Go
ISO 86012023-11-14T22:13:20ZAPI REST, JSON
RFC 2822Tue, 14 Nov 2023 22:13:20 +0000En-têtes d'e-mail, HTTP

Convertir un timestamp Unix en date lisible

En JavaScript

JavaScript représente les timestamps en millisecondes. Pour convertir un timestamp Unix en secondes en objet JavaScript Date, multipliez d'abord par 1000. Ensuite, utilisez des méthodes comme toLocaleString() ou toISOString() pour formater la sortie.

En Python

Le module datetime de Python fournit la méthode fromtimestamp() pour convertir un timestamp Unix en objet datetime. Python prend également en charge les timestamps avec une précision en microsecondes via la méthode datetime.fromtimestamp(ts, tz=timezone.utc).

En ligne de commande

Sur Linux et macOS, la commande date peut convertir les timestamps. Sur Linux, utilisez date -d @1700000000 ou sur macOS, utilisez date -r 1700000000 pour obtenir une date lisible à partir d'un timestamp Unix.

Avec un outil en ligne

La méthode la plus rapide pour convertir un timestamp est d'utiliser un convertisseur en ligne. Collez votre timestamp et l'outil affiche instantanément la date et l'heure correspondantes (dans plusieurs formats). Essayez notre convertisseur de timestamp gratuit pour des conversions rapides.

Convertir une date en timestamp Unix

La conversion inverse — d'une date lisible en timestamp Unix — est tout aussi importante. Elle est souvent nécessaire lors de l'envoi de dates à une API, du stockage d'une date choisie par l'utilisateur ou de la planification d'événements futurs.

En JavaScript, créez un objet Date et appelez getTime() pour obtenir le timestamp en millisecondes, puis divisez par 1000 pour obtenir les secondes. En Python, utilisez datetime.timestamp() pour obtenir directement le timestamp Unix. La plupart des langages de programmation offrent des méthodes intégrées similaires.

Le problème de l'année 2038

Les systèmes utilisant des entiers signés de 32 bits pour stocker les timestamps Unix déborderont le 19 janvier 2038 à 03:14:07 UTC. À ce moment, le timestamp atteindra 2147483647, la valeur maximale d'un entier signé 32 bits, puis passera en négatif, provoquant l'affichage de dates en 1901.

Ce problème, appelé bug de l'an 2038 ou Y2K38, affecte les anciens systèmes et les appareils embarqués. La solution est d'utiliser des entiers de 64 bits pour stocker les timestamps, ce qui étend la plage représentable à environ 292 milliards d'années. La plupart des systèmes d'exploitation, bases de données et langages de programmation modernes sont passés aux timestamps 64 bits.

Conseil de développeur : utilisez toujours des entiers 64 bits pour stocker les timestamps dans les bases de données et les API. Si vous utilisez JavaScript, gardez à l'esprit que Date.getTime() renvoie des millisecondes, pas des secondes. Divisez par 1000 lors de l'interaction avec des systèmes attendant des secondes.

Gestion des fuseaux horaires

Les timestamps Unix utilisent toujours l'UTC, éliminant l'ambiguïté des fuseaux horaires. Cependant, l'affichage des timestamps aux utilisateurs nécessite une conversion vers leur fuseau horaire local. Voici les points clés à prendre en compte :

Pièges courants

Besoin de convertir entre timestamps Unix et dates lisibles ? Essayez notre convertisseur de timestamp gratuit.

Essayez le convertisseur de timestamp

Questions fréquentes

Qu'est-ce que l'époque Unix ?

L'époque Unix est le 1er janvier 1970 à 00:00:00 UTC. Elle sert de point de référence pour tous les calculs de timestamps Unix. Le timestamp représente le nombre de secondes écoulées depuis cet instant.

Les timestamps Unix vont-ils s'épuiser ?

Les timestamps Unix stockés sur des entiers signés 32 bits déborderont le 19 janvier 2038, ce qui est appelé le bug de l'an 2038. Les systèmes utilisant des entiers 64 bits ne seront pas confrontés à ce problème pendant environ 292 milliards d'années. La plupart des systèmes modernes sont passés aux timestamps 64 bits.

Les timestamps Unix sont-ils affectés par les fuseaux horaires ?

Non, les timestamps Unix utilisent toujours l'UTC et ne sont pas affectés par les fuseaux horaires. Le même timestamp représente le même instant dans le monde entier. La conversion de fuseau horaire se produit uniquement lors de l'affichage du timestamp sous forme de date lisible.

Quelle est la différence entre les timestamps en secondes et en millisecondes ?

Le timestamp Unix standard mesure le temps écoulé depuis l'époque en secondes, tandis que JavaScript et certaines API utilisent des millisecondes. Un timestamp en millisecondes est 1000 fois plus grand qu'un timestamp en secondes. Par exemple, 1700000000 secondes équivaut à 1700000000000 millisecondes.

Les secondes intercalaires affectent-elles les timestamps Unix ?

Techniquement, les timestamps Unix ignorent les secondes intercalaires. Chaque jour est considéré comme ayant exactement 86400 secondes. Cela signifie que lorsqu'une seconde intercalaire est insérée, le temps Unix peut légèrement dériver par rapport à l'UTC, mais en pratique cela pose rarement problème.