← Tous les articles

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

A milliseconds value treated as seconds becomes an extremely far-future date. A seconds value treated as milliseconds becomes a date near January 1970. The digits are the quickest diagnostic.

  • 1700000000000 as milliseconds = 2023-11-14 22:13:20 UTC
  • 1700000000000 as seconds = year 55840 range, depending on the library
  • 1700000000 as seconds = 2023-11-14 22:13:20 UTC
  • 1700000000 as milliseconds = 1970-01-20 16:13:20 UTC

Cross-language patterns for ms-to-date

The conversion is structurally the same in every language — divide by 1000 (carefully) or use a millisecond-aware constructor. The details that bite are precision loss and naming.

  • JavaScript: new Date(1700000000000) — no division needed, Date is millisecond-based
  • Python: datetime.fromtimestamp(1700000000000 / 1000, tz=timezone.utc) — float division, watch for precision loss
  • Java: Instant.ofEpochMilli(1700000000000L) — exact millisecond precision preserved
  • PostgreSQL: SELECT to_timestamp(1700000000000.0 / 1000) — to_timestamp expects seconds, not milliseconds
  • SQLite: SELECT datetime(1700000000000 / 1000, 'unixepoch') — integer division drops fractional seconds
  • Go: time.UnixMilli(1700000000000) — added in Go 1.17 specifically to avoid the seconds-vs-ms mix-up
  • Ruby: Time.at(0, 1700000000000, :millisecond) for exact ms precision
  • C#: DateTimeOffset.FromUnixTimeMilliseconds(1700000000000L).UtcDateTime

Related articles

FAQ

Is epoch time in ms the same as Unix timestamp?
It uses the same epoch, but the unit is milliseconds instead of seconds. Classic Unix timestamp usually means seconds.
How many digits is an epoch millisecond timestamp?
For current dates, epoch milliseconds are usually 13 digits.
Does JavaScript use milliseconds or seconds?
JavaScript Date uses milliseconds. Date.now() returns epoch milliseconds.
How do I convert a Java long timestamp to a date?
If the long is epoch milliseconds, use Instant.ofEpochMilli(value); if it is epoch seconds, use Instant.ofEpochSecond(value). Check the digit count first — 13 digits is usually milliseconds, 10 digits is usually seconds.