CommandDialog

Convertisseur d'Epoch

Convertissez les horodatages Unix (secondes écoulées depuis le 1er janvier 1970) en dates lisibles par l'homme et vice versa, simplifiant les calculs et comparaisons basés sur le temps.

Timestamp Unix
Date locale
RFC 3339
ISO 8601
ISO 9075
ISO 7231
Date UTC

Qu’est-ce que l’Epoch ou l’horodatage Unix ?

L’horodatage Unix, également connu sous le nom de temps Epoch ou temps POSIX, est un système permettant de décrire un point dans le temps comme le nombre de secondes écoulées depuis l’époque Unix (1er janvier 1970 à 00:00:00 UTC), en excluant les secondes intercalaires. Il sert de standard universel pour la représentation du temps en informatique, permettant des calculs, des comparaisons et des synchronisations précises basées sur le temps à travers les systèmes et les applications.

Les horodatages Unix sont largement utilisés dans les bases de données, les systèmes de journalisation, les API et les systèmes distribués pour suivre les événements, planifier des tâches et gérer des opérations sensibles au temps. Cependant, le temps Unix n’est pas une représentation exacte de l’UTC en raison de l’exclusion des secondes intercalaires. De nombreux systèmes hérités stockent le temps Unix sous forme d’un entier signé de 32 bits, qui débordera le 19 janvier 2038 à 03:14:08 UTC, conduisant au problème de l’an 2038.

Que se passe-t-il le 19 janvier 2038 ?

Le problème de l’an 2038 (Y2038, Epochalypse, ou Unix Y2K) est un problème critique pour les systèmes utilisant un entier signé de 32 bits pour stocker le temps Unix. Ces systèmes ne peuvent pas représenter des temps au-delà de 03:14:07 UTC le 19 janvier 2038, car la valeur maximale (2 147 483 647 secondes) sera dépassée. Lorsqu’il est incrémenté, l’horodatage débordera, passant à un nombre négatif et provoquant une interprétation erronée par les systèmes comme étant le 13 décembre 1901.

Ce débordement d’entier peut perturber des systèmes critiques dans des domaines tels que les transactions financières, l’aviation, les soins de santé et les infrastructures, où la précision temporelle est essentielle. Pour atténuer ce problème, les systèmes modernes passent à des entiers de 64 bits, qui peuvent représenter le temps pendant des milliards d’années dans le futur. Les développeurs sont également encouragés à mettre à jour les systèmes hérités et à adopter des bibliothèques robustes de gestion du temps pour prévenir les défaillances liées à Y2038.

Comment obtenir l’heure Epoch actuelle dans différents langages de programation ?

PHP

$epoch = time();

Javascript

var epoch = Math.floor(Date.now() / 1000);

Typescript

let epoch: number = Math.floor(Date.now() / 1000);

C++

#include <chrono>
auto epoch = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();

Java

long epoch = System.currentTimeMillis() / 1000;

Rust

use std::time::{SystemTime, UNIX_EPOCH};
let epoch = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs();

Go

import "time"
epoch := time.Now().Unix()

Swift

import Foundation
let epoch = Int(Date().timeIntervalSince1970)

Bash Shell

epoch=$(date +%s)

C#

long epoch = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

MySQL

SELECT UNIX_TIMESTAMP(NOW());

MATLAB

epoch = posixtime(datetime('now'));

VBA

Dim epoch As Long
epoch = DateDiff("s", "1/1/1970", Now())