Convertir des millisecondes en date
Lisez un timestamp Unix en millisecondes comme une date, la partie inférieure à la seconde étant conservée sur la ligne ISO 8601.
Un timestamp ou une date par ligne, jusqu'à 500.
Collez le code dans un message Discord ; chacun le voit dans son propre fuseau horaire et sa propre langue.
Convertissez ce timestamp dans votre propre code.
Convertir des millisecondes epoch en date
La plupart des valeurs de temps que rencontre une développeuse front-end sont en millisecondes, parce que c'est ce que le langage lui donne : Date.now() compte des millisecondes, pas des secondes. Tout ce qui vient ensuite, des chaînes de traitement de journaux aux colonnes de base de données, doit alors s'accorder sur l'unité. Cette page ouvre le convertisseur de timestamp Unix avec le menu « Unité » déjà sur « Millisecondes », pour qu'un nombre à treize chiffres soit lu correctement dès que vous le collez.
La réponse apparaît sur quatre lignes à la fois : l'instant dans le fuseau sélectionné en haut à droite, le même instant en <abbr title="Temps universel coordonné">UTC, la forme ISO 8601 que la plupart des API attendent en retour, et l'écart avec maintenant en mots simples. Tout est calculé dans la page : les valeurs sorties d'un journal de production restent sur votre machine.
Treize chiffres, et quand les compter ne suffit pas
La détection automatique travaille à partir du nombre de chiffres et tombe juste pour toute date de ce siècle, mais l'unité est une propriété du système qui a produit le nombre, pas du nombre lui-même. Fixez le menu « Unité » et la devinette disparaît. Se tromper n'a rien de subtil, puisque chaque palier entre unités déplace la date de trois ordres de grandeur.
Unité choisie pour 1735689600000 | Date obtenue | Verdict |
|---|---|---|
| Secondes | 25 octobre 56971 | Décalé d'un facteur 1000 dans le mauvais sens |
| Millisecondes | 1er janvier 2025, 00:00:00 UTC | Ce que le nombre signifie |
| Microsecondes | 21 janvier 1970, 02:08:09 UTC | Une date proche de 1970 est le symptôme classique |
| Nanosecondes | 1er janvier 1970, 00:28:55 UTC | Presque l'epoch elle-même |
Une date située dans les premiers jours de 1970, ou à des dizaines de milliers d'années, n'est donc presque jamais une donnée corrompue. C'est le même entier lu sous la mauvaise unité, et le correctif se trouve dans le menu plutôt que dans le nombre.
D'où viennent les timestamps en millisecondes
- JavaScript :
Date.now()etnew Date().getTime()renvoient tous deux des millisecondes, etnew Date(n)en attend, ce qui explique qu'une valeur à dix chiffres doive d'abord être multipliée par 1000. - Java :
System.currentTimeMillis()etInstant.toEpochMilli(). - MongoDB : le type date de BSON est un décompte de millisecondes depuis l'epoch sur 64 bits signés.
- Kafka, Elasticsearch et la plupart des formats de journaux en JSON, qui ont hérité l'unité des langages qui écrivent dedans.
Les bases de données et l'outillage Unix penchent de l'autre côté et comptent en secondes : la frontière entre un service en JavaScript et une colonne SQL est donc exactement l'endroit où le facteur 1000 se perd. Convertir ici une valeur suspecte et lire la date est le moyen le plus rapide de voir quel côté l'a laissé tomber.
Arrondis, et convertir plus d'une valeur
Passer des millisecondes aux secondes est une troncature : faites-le à un seul endroit et dans un seul sens. Mélanger un arrondi vers le bas dans un service et un arrondi au plus proche dans un autre produit des écarts d'une seconde qui n'apparaissent que lorsque deux événements tombent dans la même seconde. L'onglet « Par lots » sous le convertisseur suit la même règle : collez jusqu'à 500 lignes, et chaque ligne reçoit une colonne « Secondes » sans la fraction, à côté d'une colonne « ISO 8601 (UTC) » qui la conserve, prête à copier en CSV.
Conversions associées
Pour une valeur à dix chiffres, voyez convertir un timestamp en date, et pour le sens inverse convertir une date en timestamp, qui renvoie les secondes et les millisecondes pour la date choisie. Le timestamp Unix actuel est le compteur en direct de la barre du haut, et les timestamps Discord réclament la forme en secondes, ce qui est une raison fréquente de convertir vers le bas.