Millisecondes epoch en date : convertir des timestamps à 13 chiffres et des valeurs long

Un guide pour convertir les millisecondes epoch en dates lisibles. Couvre les timestamps à 13 chiffres, Date de JavaScript, les valeurs long de Java, les millisecondes contre secondes et pourquoi la mauvaise unité produit des dates de 1970 ou très lointaines.

Que sont les millisecondes epoch

Les millisecondes epoch comptent les millisecondes depuis le 1er janvier 1970 à 00:00:00 UTC. Elles utilisent le même epoch Unix que les secondes Unix, mais avec trois chiffres de précision en plus. Une valeur moderne de millisecondes epoch a en général 13 chiffres, comme 1700000000000.

Comment convertir des millis en date

Si la valeur est déjà en millisecondes, JavaScript Date peut la lire directement. Si l'outil destinataire attend des secondes, divisez d'abord par 1000. L'erreur principale est de multiplier ou diviser à la mauvaise frontière.

  • JavaScript: new Date(1700000000000).toISOString()
  • Milliseconds to seconds: Math.floor(1700000000000 / 1000)
  • Seconds to milliseconds: 1700000000 * 1000
  • Java Instant: Instant.ofEpochMilli(1700000000000L)
  • Python: datetime.fromtimestamp(ms / 1000, tz=timezone.utc)

Long vers date en Java et en base de données

Les recherches « long vers date » viennent souvent de Java, Kotlin, Android ou d'exports de base où un timestamp est stocké en entier 64 bits. La valeur peut être en millisecondes epoch, mais aussi en secondes, microsecondes ou nanosecondes. Vérifiez le nombre de chiffres avant de convertir.

  • 10 chiffres : probablement des secondes Unix
  • 13 chiffres : probablement des millisecondes Unix ou un long Java en millisecondes
  • 16 chiffres : probablement des microsecondes
  • 19 chiffres : probablement des nanosecondes
  • Nommez toujours les colonnes avec leur unité, comme created_at_ms

Pourquoi les millisecondes donnent des dates étranges

Une valeur en millisecondes traitée comme des secondes devient une date très lointaine dans le futur. Une valeur en secondes traitée comme des millisecondes devient une date proche de janvier 1970. Les chiffres sont le diagnostic le plus rapide.

  • 1700000000000 en millisecondes = 2023-11-14 22:13:20 UTC
  • 1700000000000 en secondes = vers l'an 55840, selon la bibliothèque
  • 1700000000 en secondes = 2023-11-14 22:13:20 UTC
  • 1700000000 en millisecondes = 1970-01-20 16:13:20 UTC

FAQ sur les millisecondes epoch

Le temps epoch en ms est-il identique au timestamp Unix ?
Il utilise le même epoch, mais l'unité est la milliseconde au lieu de la seconde. Le timestamp Unix classique signifie en général des secondes.
Combien de chiffres a un timestamp en millisecondes epoch ?
Pour les dates actuelles, les millisecondes epoch ont en général 13 chiffres.
JavaScript utilise-t-il des millisecondes ou des secondes ?
JavaScript Date utilise des millisecondes. Date.now() renvoie des millisecondes epoch.
Comment convertir un timestamp long Java en date ?
Si le long est en millisecondes epoch, utilisez Instant.ofEpochMilli(value) ; s'il est en secondes epoch, utilisez Instant.ofEpochSecond(value). Vérifiez d'abord le nombre de chiffres : 13 = millisecondes, 10 = secondes.