Excel Date Converter

Convertisseur Excel OADate vers timestamp Unix

Convertissez Excel OADate en temps Unix avec la formule exacte et la prise en charge des grandes valeurs. Sortie en secondes, millisecondes, ISO 8601 et format lisible.

jours depuis le 30-12-1899

Heure actuelle — Date de série Excel / OADate
Timestamp Unix (s)

Qu'est-ce qu'un numéro de série de date Excel ?

Excel stocke les dates sous forme de numéros de série : la partie entière est le nombre de jours depuis l'époque du système et la partie fractionnaire l'heure de la journée. Dans le système de dates 1900 par défaut, le numéro de série 1 est le 1er janvier 1900. L'OLE Automation Date (OADate) utilisé par .NET et COM emploie le même décompte de jours mais compte à partir du 30 décembre 1899.

  • Jour 0 (OADate) = 1899-12-30 ; numéro de série Excel 1 = 1900-01-01
  • Partie entière = jours, partie fractionnaire = fraction d'une journée de 24 heures
  • Exemple : 45244.92592593 → 2023-11-14 22:13:20
  • OADate est produit par DateTime.ToOADate() en .NET

Comment convertir une date Excel en temps Unix

Il y a 25 569 jours entre l'origine Excel/OADate (1899-12-30) et l'époque Unix (1970-01-01). Soustrayez-les et multipliez par le nombre de secondes dans une journée.

  • Unix seconds = (ExcelSerial − 25569) × 86400
  • Unix milliseconds = (ExcelSerial − 25569) × 86400000
  • Inverse : ExcelSerial = Unix seconds / 86400 + 25569
  • Ce convertisseur traite l'entrée comme une valeur d'horloge murale en UTC

Le bug de l'année bissextile 1900

Pour rester compatible avec Lotus 1-2-3, Excel traite par erreur 1900 comme une année bissextile et inclut un 29 février 1900 inexistant (numéro de série 60). Pour toute date au 1er mars 1900 ou après, le décalage standard de 25 569 est correct ; seuls les numéros de série de 60 ou moins sont touchés. La plupart des données réelles se situent bien après, donc le bug importe rarement en pratique — mais c'est pourquoi le décalage est de 25 569 et non de 25 568.

  • Numéro de série 60 = le fantôme 1900-02-29 ; numéro de série 61 = 1900-03-01
  • Les dates antérieures au 1900-03-01 sont décalées d'un jour dans le système 1900
  • Le système de dates 1904 (ancien Excel Mac) compte plutôt à partir du 1904-01-01

Convertisseurs de format d'horodatage associés

Autres systèmes de dates de tableurs

Le système 1900 d'Excel est le plus courant mais pas le seul :

  • Le système de dates 1904 d'Excel (ancien défaut Mac) utilise 1904-01-01 comme jour 0 ; le décalage vers Unix est 24107
  • Google Sheets s'aligne sur le système 1900 (décalage 25569) par compatibilité
  • LibreOffice Calc prend en charge les origines 1899-12-30 et 1900-01-01 selon la configuration
  • Power Query : Number.From(DateTime.FromText(...)) renvoie les jours depuis 1899-12-30 (système 1900)
  • Dans un .xlsx, le XML sous-jacent stocke de l'ISO 8601 — Excel convertit vers/depuis le numéro de série à la lecture

FAQ

Comment convertir une date de série Excel en horodatage Unix ?
Soustrayez 25 569 (les jours entre 1899-12-30 et 1970-01-01) et multipliez par 86 400 pour obtenir des secondes Unix.
Qu'est-ce qu'un OADate ?
Une date d'automation OLE est un décompte de jours en virgule flottante depuis le 30 décembre 1899, utilisé par .NET (DateTime.ToOADate) et COM. Elle correspond aux dates de série Excel pour toutes les dates modernes.
Pourquoi le décalage Excel est-il 25569 et non 25568 ?
Le bug de l'année bissextile 1900 d'Excel insère un faux 29 février 1900, ajoutant un jour au décompte pour toute date postérieure, ce qui fait de 25 569 le décalage correct pour les dates modernes.