Service en ligne 100% Gratuit Utilitaires Web AngularForAll

- Convertisseur Unix Timestamp en ligne

Convertir Timestamp Unix En Date Convertisseur Unix Timestamp Gratuit Epoch Time Converter En Ligne Date Vers Timestamp Javascript Timestamp Millisecondes Secondes Unix Time Fuseau Horaire Timestamp Utc Paris Timezone Il Y A X Jours Timestamp Timestamp Iso 8601 Conversion Déboguer Timestamp Api Rest

Convertissez une date en timestamp Unix (secondes/ms) ou un timestamp en date lisible, avec fuseau horaire et affichage du temps relatif.

⏱️

Convertisseur Unix Timestamp

Timestamp actuel
— ms

📅 Date → Timestamp

🔢 Timestamp → Date

Détection auto secondes/ms (13 chiffres = ms)

Qu'est-ce que le Unix Timestamp ?

Le Unix Timestamp (ou Epoch time) est une façon universelle de représenter un instant précis dans le temps. Il exprime le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, aussi appelé l'Epoch Unix.

Cette convention est utilisée dans tous les systèmes d'exploitation Unix/Linux, mais aussi dans la quasi-totalité des langages de programmation modernes (JavaScript, PHP, Python, Go, Rust…). C'est un entier simple, universel et indépendant de la langue ou du format d'affichage.

Pourquoi 1970 ?

La date du 1er janvier 1970 a été choisie par les développeurs des systèmes Unix dans les années 1970. À l'époque, cela représentait une date récente, facile à stocker sur des systèmes 32 bits. Cette convention s'est imposée comme standard mondial.

Date/événementTimestamp Unix (s)Notes
1er janv. 1970 00:00:00 UTC0Epoch Unix — point zéro
1er janv. 2000 00:00:00 UTC946 684 800Bug an 2000 (Y2K)
1er janv. 2024 00:00:00 UTC1 704 067 200Début 2024
19 janv. 2038 03:14:07 UTC2 147 483 647Limite entier 32 bits signé
1er janv. 2100 00:00:00 UTC4 102 444 80022e siècle
💡 Bug 2038 : Les systèmes qui stockent le timestamp sur un entier 32 bits signé dépasseront la limite le 19 janvier 2038. Les systèmes modernes utilisent des entiers 64 bits pour éviter ce problème.

Secondes vs millisecondes : quelle différence ?

Il existe deux variantes du timestamp Unix selon la précision requise :

⏱️ Secondes (Unix standard)

Nombre de secondes depuis l'Epoch. Utilisé par défaut dans la plupart des langages serveur.

1714521600
# 10 chiffres environ

Utilisé par : PHP time(), Python time.time(), Unix shell date +%s

⚡ Millisecondes (précision web)

Secondes × 1000. Nécessaire pour des applications temps réel où la précision à la seconde ne suffit pas.

1714521600000
# 13 chiffres environ

Utilisé par : JavaScript Date.now(), Java System.currentTimeMillis()

Comment détecter automatiquement secondes ou ms ?

La règle pratique est simple : si le timestamp comporte 13 chiffres ou plus, il s'agit de millisecondes. En dessous, ce sont des secondes. Notre outil applique cette détection automatique.

// JavaScript — détection automatique
function normalizeTimestamp(ts) {
    // Timestamp en ms si >= 10^12 (13 chiffres)
    return ts >= 1e12 ? ts : ts * 1000;
}

const tsMs = normalizeTimestamp(1714521600);    // → 1714521600000
const tsMs2 = normalizeTimestamp(1714521600000); // → 1714521600000 (inchangé)

Fuseaux horaires et UTC

Le timestamp Unix est toujours basé sur UTC (Coordinated Universal Time). Il ne contient aucune information de fuseau horaire — c'est un point fixe dans le temps. L'affichage dépend du fuseau choisi.

UTC vs GMT vs fuseau local

FuseauDécalageExemple pour ts = 1714521600
UTC+0:002024-05-01 00:00:00
Europe/Paris (CEST)+2:002024-05-01 02:00:00
America/New_York (EDT)-4:002024-04-30 20:00:00
Asia/Tokyo (JST)+9:002024-05-01 09:00:00

Conversion avec l'API Intl en JavaScript

// Afficher un timestamp dans un fuseau horaire spécifique
const ts = 1714521600; // secondes
const date = new Date(ts * 1000); // convertir en ms pour le constructeur Date

const options = {
    timeZone: 'Europe/Paris',
    year: 'numeric', month: '2-digit', day: '2-digit',
    hour: '2-digit', minute: '2-digit', second: '2-digit',
    hour12: false
};

const formatter = new Intl.DateTimeFormat('fr-FR', options);
console.log(formatter.format(date));
// → "01/05/2024 02:00:00"
⚠️ Heure d'été : Les fuseaux comme Europe/Paris alternent entre CET (+1h) en hiver et CEST (+2h) en été. L'API Intl gère automatiquement ces transitions, contrairement aux décalages fixes.

Conversion en JavaScript

JavaScript propose l'objet Date et l'API Intl pour manipuler les timestamps. Voici les opérations les plus courantes :

Obtenir le timestamp actuel

// Timestamp en millisecondes (méthode recommandée)
const nowMs = Date.now();
// → ex: 1714521600000

// Timestamp en secondes (comme Unix standard)
const nowSec = Math.floor(Date.now() / 1000);
// → ex: 1714521600

// Avec l'objet Date
const now = new Date();
const tsMs = now.getTime();       // millisecondes
const tsSec = now.valueOf() / 1000; // secondes (float)

Date → Timestamp

// À partir d'une chaîne ISO
const date = new Date('2024-05-01T00:00:00Z');
const ts = Math.floor(date.getTime() / 1000);
// → 1714521600

// À partir de composants
const date2 = new Date(Date.UTC(2024, 4, 1, 0, 0, 0)); // mois 0-indexé (4 = mai)
const ts2 = Math.floor(date2.getTime() / 1000);
// → 1714521600

Timestamp → Date lisible

const ts = 1714521600; // secondes

// Convertir en objet Date
const date = new Date(ts * 1000); // × 1000 pour ms

// Format ISO 8601
console.log(date.toISOString());
// → "2024-05-01T00:00:00.000Z"

// Format localisé France
console.log(date.toLocaleString('fr-FR', { timeZone: 'Europe/Paris' }));
// → "01/05/2024, 02:00:00"

Temps relatif (il y a X jours)

// Calcul du temps relatif
function timeAgo(ts) {
    const now = Math.floor(Date.now() / 1000);
    const diff = now - ts; // en secondes

    if (diff < 60)        return `il y a ${diff} seconde(s)`;
    if (diff < 3600)      return `il y a ${Math.floor(diff / 60)} minute(s)`;
    if (diff < 86400)     return `il y a ${Math.floor(diff / 3600)} heure(s)`;
    if (diff < 2592000)   return `il y a ${Math.floor(diff / 86400)} jour(s)`;
    if (diff < 31536000)  return `il y a ${Math.floor(diff / 2592000)} mois`;
    return `il y a ${Math.floor(diff / 31536000)} an(s)`;
}

console.log(timeAgo(1714521600));
// → "il y a 1 jour(s)" (si lancé le 02/05/2024)

Conversion PHP et Python

PHP — manipulation des timestamps

<?php
// Timestamp actuel (secondes)
$now = time();
echo $now; // → 1714521600

// Date → Timestamp (avec fuseau)
$date = new DateTime('2024-05-01 00:00:00', new DateTimeZone('Europe/Paris'));
$ts = $date->getTimestamp();
echo $ts; // → 1714514400 (UTC, car Paris = UTC+2)

// Timestamp → Date formatée
$formatted = date('d/m/Y H:i:s', $ts);
echo $formatted; // → "01/05/2024 00:00:00"

// Avec fuseau horaire
date_default_timezone_set('Europe/Paris');
echo date('d/m/Y H:i:s', $ts);
// → "01/05/2024 00:00:00"

// Carbon (Laravel) — plus lisible
// $date = Carbon::createFromTimestamp($ts, 'Europe/Paris');
// echo $date->diffForHumans(); // → "il y a 1 jour"
?>

Python — datetime et timestamps

import time
from datetime import datetime, timezone
import pytz

# Timestamp actuel
ts = int(time.time())
print(ts)  # → 1714521600

# Date → Timestamp
paris_tz = pytz.timezone('Europe/Paris')
dt = datetime(2024, 5, 1, 0, 0, 0, tzinfo=paris_tz)
ts = int(dt.timestamp())
print(ts)  # → 1714514400

# Timestamp → Date lisible (UTC)
dt_utc = datetime.fromtimestamp(ts, tz=timezone.utc)
print(dt_utc.isoformat())
# → "2024-04-30T22:00:00+00:00"

# Timestamp → Date locale
dt_local = datetime.fromtimestamp(ts, tz=paris_tz)
print(dt_local.strftime('%d/%m/%Y %H:%M:%S'))
# → "01/05/2024 00:00:00"

MySQL / PostgreSQL

-- MySQL : date vers timestamp
SELECT UNIX_TIMESTAMP('2024-05-01 00:00:00');
-- → 1714514400 (heure serveur appliquée)

-- MySQL : timestamp vers date
SELECT FROM_UNIXTIME(1714521600);
-- → 2024-05-01 02:00:00 (si serveur sur UTC+2)

-- PostgreSQL : timestamp vers date ISO
SELECT TO_TIMESTAMP(1714521600);
-- → 2024-05-01 00:00:00+00

-- PostgreSQL : date vers timestamp
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2024-05-01 00:00:00 UTC');
-- → 1714521600

Cas d'usage courants

🗄️
Bases de données

Stocker les dates comme entiers pour des comparaisons rapides, des tris et des index efficaces. Évite les problèmes de format.

🔐
JWT & tokens

Les JSON Web Tokens utilisent iat (issued at) et exp (expiration) comme timestamps Unix pour gérer la validité.

📊
Analytics & logs

Les logs serveur (Nginx, Apache) et les outils analytics (Grafana, Elasticsearch) utilisent massivement les timestamps.

🔄
Synchronisation

Synchroniser des données entre serveurs de différents fuseaux horaires, ou détecter les conflits de concurrence.

📅
Planification

Cron jobs, tâches planifiées, deadlines, rappels et notifications pushés à un timestamp précis.

🌐
APIs REST

Les APIs renvoient souvent des timestamps UTC. Cet outil aide à déboguer des réponses API et vérifier des dates d'expiration.

Questions fréquentes

Quelle est la différence entre timestamp Unix et timestamp JavaScript ?

Le timestamp Unix standard est en secondes, tandis que Date.now() en JavaScript retourne des millisecondes. Pour convertir : const unixTs = Math.floor(Date.now() / 1000). Notre outil accepte les deux formats et les détecte automatiquement.

Comment convertir un timestamp en "il y a X jours" ?

Calculez la différence entre le timestamp actuel et le timestamp cible, puis exprimez-la en unités lisibles. Notre outil affiche automatiquement ce temps relatif. Pour du code : soustrayez les deux timestamps en secondes et divisez par 86 400 pour obtenir des jours.

Est-ce que le timestamp Unix tient compte de l'heure d'été ?

Non. Le timestamp Unix est toujours en UTC, qui ne change pas avec l'heure d'été. Les ajustements d'heure d'été sont appliqués lors de la conversion en date locale. C'est l'une des grandes forces du timestamp : il est ambigu.

Qu'est-ce que le bug de l'an 2038 ?

Les systèmes 32 bits stockant le timestamp sur un entier signé atteignent leur valeur maximale (2 147 483 647) le 19 janvier 2038 à 03:14:07 UTC. Après ce point, la valeur déborde et revient à une date négative (1901). Les systèmes modernes 64 bits ne sont pas affectés.

Comment stocker des timestamps en base de données ?

Deux approches courantes : 1) Type DATETIME ou TIMESTAMP natif (MySQL, PostgreSQL) — lisible mais dépendant du fuseau du serveur. 2) Entier BIGINT stockant le timestamp Unix — portable, performant pour les index et comparaisons. La deuxième est recommandée pour les applications internationales.

Comment valider qu'un timestamp est valide ?

Un timestamp valide est un entier positif représentant une date réaliste. En JavaScript : const isValid = Number.isInteger(ts) && ts > 0 && new Date(ts * 1000).getTime() > 0. Vérifiez aussi que la date résultante est dans une plage attendue (ex: entre 2000 et 2100 pour une application métier).

Timestamp en millisecondes ou microsecondes ?

JavaScript utilise les millisecondes (ms). Python et PHP permettent les microsecondes via time.time() (float) ou microtime(true). Pour la plupart des applications web, les millisecondes suffisent. Les microsecondes sont utiles pour le profiling de performance ou les systèmes de trading.

Partager