Fechas y hora
Timestamps Unix: elige la unidad antes de convertir
Ejemplo comprobable de segundos, milisegundos, enteros seguros y hora local en AllYouNeed.
Empieza por un instante conocido
El conversor de timestamp admite segundos o milisegundos enteros desde el origen Unix. Prueba estos valores con la unidad explícita:
1700000000segundos →2023-11-14T22:13:20.000Z.1700000000000milisegundos → el mismo instante.
El multiplicador es 1.000, no 10.000. La Z del resultado ISO indica UTC; la fila local muestra el mismo instante en la zona del dispositivo. Cambiar la zona de presentación no cambia el instante.
Auto es una aproximación
Auto interpreta como milisegundos los valores a partir de 10^12 y como segundos los inferiores. Sirve para muchos timestamps positivos recientes, pero no descubre una unidad sin documentar. 86400000 significa 1970-01-02 en milisegundos y una fecha muy posterior en segundos. Los milisegundos negativos también necesitan una unidad explícita.
Consulta la unidad en la API, base de datos o formato de origen. Usa nombres como created_at_ms en lugar de deducirla contando cifras. El conversor no acepta microsegundos, nanosegundos, fracciones de segundo ni números seguidos de texto adicional.
Reproduce el ejemplo
const seconds = 1700000000;
const milliseconds = seconds * 1000;
console.log(new Date(milliseconds).toISOString());
// 2023-11-14T22:13:20.000Z
console.log(new Date(86400000).toISOString());
// 1970-01-02T00:00:00.000Z
Descarga las comprobaciones de fechas y ejecuta node date-checks.mjs con una instalación actual de Node.js. Sólo usa funciones incorporadas, no hace peticiones de red y verifica estos ejemplos y los de la guía de zonas horarias. Una ejecución correcta imprime Date examples passed.
Precisión y rango son límites distintos
Number de JavaScript conserva exactamente los enteros de su rango seguro, entre -(2^53 - 1) y 2^53 - 1. JSON no obliga a todas las implementaciones a usar esa representación. Si un lector JSON convierte un entero enorme de nanosegundos a número de JavaScript, puede perder precisión antes de mostrarlo. Usa una cadena con formato documentado cuando necesites conservar valores grandes exactos.
Date tiene otro rango: ±8.640.000.000.000.000 milisegundos. Un entero puede ser seguro y aun así quedar fuera de las fechas admitidas. El conversor rechaza entradas que no sean enteros completos y fechas fuera de rango, en vez de interpretar sólo el prefijo numérico.
Fecha, zona y reloj responden a preguntas distintas
La entrada fecha a timestamp usa la zona local del dispositivo. Durante un cambio de horario puede haber horas ausentes o repetidas; JavaScript aplica su regla de resolución. Al interpretar una fecha textual de un log o API, incluye un desplazamiento explícito o Z.
Los timestamps de estilo Unix/POSIX no representan los segundos intercalares como segundos adicionales separados en el contador. El reloj de pared también puede ajustarse. No uses lecturas sucesivas de ese reloj como sustituto de un contador monotónico de duración ni como prueba de orden entre máquinas.
El límite de segundos con entero de 32 bits con signo es 2147483647, equivalente a 2038-01-19T03:14:07.000Z. Es un límite del almacenamiento o ABI que use esa representación, no de este conversor. Revisa el tipo y la plataforma reales.