Comprendre les timestamps Unix : guide complet pour les développeurs
Qu'est-ce qu'un timestamp Unix ?
Un timestamp Unix est une façon de suivre le temps comme un total cumulé de secondes. Il compte le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC — un point de référence connu sous le nom d'« Ère Unix ».
Par exemple, le timestamp Unix 1719000000 représente un moment précis dans le temps : le 22 juin 2024 à environ 00:00 UTC. Chaque seconde, ce nombre augmente de un.
Pourquoi utiliser des timestamps Unix ?
Les timestamps Unix sont omniprésents dans le développement logiciel pour plusieurs raisons :
- Indépendance des fuseaux horaires : Un timestamp représente le même instant dans le monde entier. Il n'y a aucune ambiguïté sur le fait qu'il soit en EST, PST ou JST — il est toujours basé sur UTC.
- Comparaison facile : Comparer deux timestamps est une simple comparaison numérique. Si le timestamp A est supérieur au timestamp B, l'événement A s'est produit après l'événement B.
- Stockage efficace : Stocker un entier de 10 chiffres est bien plus efficace en espace que stocker une chaîne de date formatée comme « 2024-06-22T00:00:00Z ».
- Opérations mathématiques : Ajouter 86 400 secondes à un timestamp vous donne exactement 24 heures plus tard. Pas besoin de se soucier des limites de mois ou des années bissextiles.
Secondes vs Millisecondes
Les timestamps Unix existent en deux formats courants :
- Secondes (10 chiffres) : Le format de timestamp Unix original. Exemple :
1719000000 - Millisecondes (13 chiffres) : Utilisé par JavaScript et de nombreuses API modernes pour une plus grande précision. Exemple :
1719000000000
Une source courante de bugs est de mélanger ces deux formats. Si vous passez un timestamp en millisecondes à une fonction attendant des secondes, la date sera complètement incorrecte (environ 50 000 ans dans le futur).
Travailler avec des timestamps dans différents langages
JavaScript
const now = Date.now(); // millisecondes const seconds = Math.floor(Date.now() / 1000); const date = new Date(seconds * 1000);
Python
import time seconds = int(time.time()) from datetime import datetime dt = datetime.fromtimestamp(seconds)
PHP
$timestamp = time(); // secondes
$date = date('Y-m-d H:i:s', $timestamp);
MySQL
SELECT UNIX_TIMESTAMP(); -- timestamp actuel SELECT FROM_UNIXTIME(1719000000); -- convertir en date
Pièges courants
- Le problème de l'année 2038 : Les entiers signés 32 bits déborderont le 19 janvier 2038. Les systèmes utilisant des timestamps 32 bits devront migrer vers des entiers 64 bits.
- Secondes intercalaires : Les timestamps Unix ne prennent pas en compte les secondes intercalaires. La plupart des systèmes les ignorent simplement, ce qui peut causer de légères divergences avec le temps atomique.
- Affichage du fuseau horaire : N'oubliez jamais qu'un timestamp Unix est en UTC. L'afficher aux utilisateurs nécessite une conversion vers leur fuseau horaire local.
Convertisseur de timestamps de TryQuickToolBox
Notre outil gratuit convertit entre les timestamps Unix (secondes et millisecondes), les dates ISO 8601, les heures UTC et les heures locales. La détection automatique signifie que vous pouvez coller n'importe quel format et obtenir des résultats instantanés. Cliquez sur n'importe quel résultat pour le copier dans votre presse-papiers.