Comment convertir le temps epoch en date lisible
Un guide pratique pour convertir les timestamps Unix en dates lisibles dans les langages de programmation populaires, avec des outils en ligne et des exemples tenant compte du fuseau.
Qu'est-ce que le temps epoch ?
Le temps epoch (aussi appelé temps Unix ou temps POSIX) est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC. C'est le standard universel pour représenter des instants en informatique. Tous les langages et systèmes d'exploitation le prennent en charge nativement, ce qui en fait le format le plus fiable pour stocker et échanger des timestamps entre systèmes.
Étape 1 — Identifiez le format de votre timestamp
Avant de convertir, déterminez si votre timestamp est en secondes ou en millisecondes :
- 10 chiffres (ex. 1700000000) → secondes depuis l'epoch Unix
- 13 chiffres (ex. 1700000000000) → millisecondes depuis l'epoch Unix
- En cas de doute, divisez par 1000 et vérifiez si l'année paraît cohérente
- Vous pouvez aussi coller le timestamp dans le convertisseur ci-dessus, qui le détectera automatiquement
Convertir epoch en date en JavaScript
Le constructeur Date de JavaScript accepte des millisecondes. Si votre timestamp est en secondes, multipliez-le d'abord par 1000.
- new Date(1700000000 * 1000).toISOString() → '2023-11-15T06:13:20.000Z'
- new Date(1700000000 * 1000).toUTCString() → 'Wed, 15 Nov 2023 06:13:20 GMT'
- new Date(1700000000 * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' })
- new Date(1700000000000).getTime() → 1700000000000 (milliseconds back)
Convertir epoch en date en Python
Le module datetime de Python fournit fromtimestamp() pour l'heure locale et utcvfromtimestamp() pour UTC. Pour une gestion explicite du fuseau, utilisez le paramètre timezone.utc.
- datetime.datetime.fromtimestamp(1700000000) → local timezone
- datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc) → UTC (Python 3.2+)
- datetime.datetime.fromtimestamp(1700000000).strftime('%Y-%m-%d %H:%M:%S') → formatted string
- datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc).isoformat() → ISO 8601
Convertir epoch en date en PHP
Les fonctions date() et la classe DateTime de PHP prennent en charge directement les timestamps Unix.
- date('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (server's local timezone)
- gmdate('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (always UTC)
- $dt = new DateTime(); $dt->setTimestamp(1700000000); $dt->format('c') → ISO 8601
Convertir epoch en date en Go
Le package time de Go convertit les timestamps Unix avec time.Unix(seconds, nanoseconds).
- time.Unix(1700000000, 0) → time.Time in local timezone
- time.Unix(1700000000, 0).UTC() → force UTC
- time.Unix(1700000000, 0).Format(time.RFC3339) → '2023-11-15T06:13:20Z'
- time.Unix(1700000000, 0).Format('2006-01-02 15:04:05') → custom layout
Erreurs courantes lors de la conversion du temps epoch
Les erreurs les plus fréquentes avec les timestamps Unix :
- Oublier de multiplier les secondes par 1000 en JavaScript — new Date(1700000000) donne l'année 1970, pas 2023
- Utiliser des millisecondes JavaScript directement comme des secondes dans un langage serveur
- Ne pas préciser de fuseau et dépendre de celui du serveur, qui varie selon les environnements
- Stocker les timestamps en chaînes plutôt qu'en entiers, ce qui casse les comparaisons et l'arithmétique numériques
FAQ sur epoch vers date
- Comment convertir le temps epoch en date ?
- Identifiez si la valeur est en secondes (10 chiffres) ou en millisecondes (13 chiffres), puis convertissez avec l'API de dates de votre langage : new Date(seconds * 1000) en JavaScript, datetime.fromtimestamp(seconds, tz=timezone.utc) en Python, ou collez-la dans le convertisseur ci-dessus.
- Pourquoi mon timestamp epoch se convertit-il en 1970 ?
- Vous avez passé une valeur en secondes à une fonction attendant des millisecondes, le plus souvent le new Date() de JavaScript. Multipliez d'abord la valeur en secondes à 10 chiffres par 1000.
- Dois-je convertir le temps epoch en UTC ou en heure locale ?
- Utilisez UTC pour les logs, les API et les comparaisons entre serveurs, et convertissez vers le fuseau local de l'utilisateur uniquement pour l'affichage. La valeur epoch est neutre vis-à-vis du fuseau.