Comment convertir les horodatages Unix en dates lisibles par un humain
Pourquoi convertir les horodatages Unix ?
Les horodatages Unix sont idéaux pour les machines — un simple entier est compact, sans ambiguïté et facile à trier. Mais pour les humains, 1785292800 ne signifie rien tant qu'il n'est pas traduit en une date et une heure de calendrier. Que vous débogiez un fichier journal, analysiez des enregistrements de base de données ou lisiez une réponse d'API, savoir convertir rapidement les horodatages est une compétence essentielle.
Méthode 1 : Utiliser notre convertisseur d'horodatage Unix en ligne
La méthode la plus rapide et la plus fiable consiste à utiliser un outil de conversion dédié.
Notre Convertisseur d'horodatage Unix accepte les horodatages en secondes et en millisecondes, détecte automatiquement la résolution et affiche le résultat dans plusieurs fuseaux horaires simultanément. Vous pouvez également aller dans l'autre sens — saisir une date lisible par un humain et obtenir l'horodatage Unix correspondant.
Cette approche est idéale lorsque vous avez besoin d'une conversion ponctuelle rapide sans toucher à une ligne de commande.
Méthode 2 : Utiliser la ligne de commande Linux (commande date)
Si vous avez accès à un terminal Linux ou macOS, la commande date est votre meilleure alliée.
Convertir un horodatage en une date lisible par un humain
# On GNU Linux (most distributions)
date -d @1785292800
# Specify a custom format
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# Output: 2026-07-19 00:00:00
# With timezone
TZ="America/New_York" date -d @1785292800
# Output: Sun Jul 19 00:00:00 EDT 2026
Sous macOS (date BSD), la syntaxe diffère légèrement :
# On macOS
date -r 1785292800
# With custom format
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"
Convertir une date en un horodatage Unix
# On GNU Linux
date -d "2026-07-19 00:00:00" +%s
# On macOS
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s
Méthode 3 : Calcul manuel
Bien que vous ne devriez rarement avoir besoin de le faire à la main, comprendre le calcul démystifie le fonctionnement du système.
La formule
seconds = (year - 1970) × 31536000 + (month offset) × 86400 + day × 86400 + hours × 3600 + minutes × 60 + seconds
La partie délicate consiste à tenir compte des années bissextiles. Une année est bissextile si elle est divisible par 4, sauf pour les années de siècle non divisibles par 400.
Approximations mentales rapides
- 86 400 secondes = 1 jour
- 604 800 secondes = 1 semaine
- Environ 31 536 000 secondes = 1 année commune
- Environ 31 622 400 secondes = 1 année bissextile
Pour une estimation approximative, vous pouvez calculer timestamp / 86400 pour obtenir le nombre de jours écoulés depuis l'epoch, puis ajouter ces jours au 1er janvier 1970.
Méthode 4 : Utiliser les langages de programmation
Chaque langage de programmation majeur dispose de fonctions intégrées pour la conversion d'horodatages. Voici les plus courantes :
JavaScript (Navigateur ou Node.js)
// Timestamp to date (JavaScript uses milliseconds)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// Output: 2026-07-19T00:00:00.000Z
// Date to timestamp
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// Output: 1785292800
Python
from datetime import datetime
# Timestamp to date
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# Output: 2026-07-19T00:00:00
# Timezone-aware (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# Output: 2026-07-19T00:00:00-04:00
# Date to timestamp
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)
PHP
<?php
// Timestamp to date
echo date("Y-m-d H:i:s", 1785292800);
// Output: 2026-07-19 00:00:00
// Date to timestamp
echo strtotime("2026-07-19 00:00:00");
// Output: 1785292800
Méthode 5 : Utiliser un tableur
Google Sheets
Utilisez la formule =DATE(1970,1,1) + A1 / 86400 où A1 contient l'horodatage. Formatez la cellule de résultat en tant que date.
Microsoft Excel
=DATE(1970,1,1) + A1 / 86400
Sous Windows Excel, vous pourriez avoir besoin de :
=(A1 / 86400) + DATE(1970,1,1)
Cas limites à surveiller
Secondes vs millisecondes
C'est l'erreur la plus courante. Si vous transmettez une valeur en millisecondes (par ex. 1785292800000) à une fonction qui attend des secondes, vous obtiendrez une date d'environ 56 000 ans dans le futur.
Comment le détecter :
- Si le nombre a 10 chiffres, il s'agit probablement de secondes
- Si le nombre a 13 chiffres, il s'agit probablement de millisecondes
- Certains systèmes utilisent également les microsecondes (16 chiffres) ou les nanosecondes (19 chiffres)
Horodatages négatifs (dates antérieures à 1970)
Les horodatages Unix peuvent représenter des dates antérieures à l'epoch en utilisant des nombres négatifs :
date -d @-126230400
# Output: Tue Dec 31 00:00:00 -1969
Tous les outils de conversion ne gèrent pas correctement les horodatages négatifs. Notre convertisseur en ligne le fait.
Secondes intercalaires
Le temps Unix ignore les secondes intercalaires par conception. Un horodatage Unix n'affichera jamais :59:60, même lors d'une insertion de seconde intercalaire. Cela signifie que l'horodatage diverge du temps atomique d'une quantité faible (actuellement 27 secondes) mais croissante.
Résumé
| Méthode | Idéal pour |
|--------|----------|
| Convertisseur en ligne (/linux-timestamp) | Conversions rapides et ponctuelles |
| Commande date | Utilisateurs de terminal et scripts |
| Calcul manuel | Comprendre comment cela fonctionne |
| Langages de programmation | Automatisation et applications |
| Tableurs | Analyse de données |
Utilisez notre Convertisseur d'horodatage Unix pour effectuer des conversions instantanées et précises avec détection automatique du fuseau horaire.