Convertir milisegundos a fecha
Lea un timestamp Unix en milisegundos como fecha, conservando la parte de menos de un segundo en la línea ISO 8601.
Un timestamp o una fecha por línea, hasta 500.
Pegue el código en un mensaje de Discord; cada persona lo verá en su propia zona horaria y en su idioma.
Convierta este timestamp en su propio código.
Convertir milisegundos epoch en una fecha
Casi todos los valores de tiempo con los que se topa quien trabaja en el front-end vienen en milisegundos, porque es lo que le entrega el lenguaje: Date.now() cuenta milisegundos, no segundos. Todo lo que viene después, de las tuberías de registros a las columnas de una base de datos, tiene que ponerse de acuerdo sobre la unidad. Esta página abre el conversor de timestamp Unix con el menú «Unidad» ya en «Milisegundos», para que un número de trece cifras se lea bien en el instante en que lo pegue.
La respuesta aparece en cuatro líneas a la vez: el instante en la zona seleccionada arriba a la derecha, el mismo instante en <abbr title="Tiempo universal coordinado">UTC, la forma ISO 8601 que la mayoría de las API quiere de vuelta y la distancia hasta ahora en palabras llanas. Todo se calcula en la página, así que los valores sacados de un registro de producción se quedan en su equipo.
Trece cifras, y cuándo contarlas no basta
La detección automática trabaja con el número de cifras y acierta con cualquier fecha de este siglo, pero la unidad es una propiedad del sistema que produjo el número, no del número en sí. Fije el menú «Unidad» y la conjetura desaparece. Equivocarse no es un detalle menor, porque cada paso entre unidades mueve la fecha tres órdenes de magnitud.
Unidad elegida para 1735689600000 | Fecha que produce | Veredicto |
|---|---|---|
| Segundos | 25 de octubre de 56971 | Desviado un factor de 1000 en el sentido contrario |
| Milisegundos | 1 de enero de 2025, 00:00:00 UTC | Lo que el número significa |
| Microsegundos | 21 de enero de 1970, 02:08:09 UTC | Una fecha cercana a 1970 es el síntoma clásico |
| Nanosegundos | 1 de enero de 1970, 00:28:55 UTC | Casi la propia epoch |
Una fecha en los primeros días de 1970, o una a decenas de miles de años, casi nunca es un dato corrupto. Es el mismo entero leído con la unidad equivocada, y el arreglo está en el menú, no en el número.
De dónde salen los timestamps en milisegundos
- JavaScript:
Date.now()ynew Date().getTime()devuelven milisegundos, ynew Date(n)los espera, razón por la cual un valor de diez cifras hay que multiplicarlo antes por 1000. - Java:
System.currentTimeMillis()eInstant.toEpochMilli(). - MongoDB: el tipo de fecha de BSON es una cuenta de milisegundos desde la epoch en 64 bits con signo.
- Kafka, Elasticsearch y la mayoría de los formatos de registro en JSON, que heredaron la unidad de los lenguajes que escriben en ellos.
Las bases de datos y las herramientas Unix tiran para el otro lado y cuentan en segundos, así que la frontera entre un servicio en JavaScript y una columna SQL es exactamente donde se pierde el factor 1000. Convertir aquí un valor sospechoso y leer la fecha es la manera más rápida de ver qué lado lo dejó caer.
Redondeo, y convertir más de uno
Pasar de milisegundos a segundos es un truncamiento, así que hágalo en un solo sitio y en un solo sentido. Mezclar un redondeo hacia abajo en un servicio con un redondeo al más cercano en otro produce diferencias de un segundo que solo aparecen cuando dos eventos caen en el mismo segundo. La pestaña «Por lotes» debajo del conversor sigue la misma regla: pegue hasta 500 líneas y cada fila recibe una columna «Segundos» con la fracción descartada junto a una columna «ISO 8601 (UTC)» que la conserva, lista para copiar como CSV.
Conversiones relacionadas
Para un valor de diez cifras está convertir timestamp a fecha, y para el sentido contrario convertir fecha a timestamp, que devuelve segundos y milisegundos para la fecha que elija. El timestamp Unix actual es el contador en marcha de la barra superior, y los timestamps de Discord necesitan la forma en segundos, que es un motivo frecuente para bajar de unidad.