Marca Unix: comprueba la unidad antes de creer la fecha

Un número de un registro o API puede convertirse en una fecha absurda. A menudo no es una zona misteriosa, sino segundos interpretados como milisegundos o al revés.

El número necesita una unidad explícita

La marca cuenta desde 1970-01-01T00:00:00Z. Algunos sistemas usan segundos; Date de JavaScript usa milisegundos e ignora segundos intercalares.

Multiplica segundos por 1000 para obtener milisegundos. El número de cifras no es un contrato fiable, especialmente cerca del origen o con valores negativos; consulta la especificación.

Referencias: MDN — Date timestamps, UTC and milliseconds

La zona cambia la presentación, no el instante

Un mismo instante puede mostrarse en relojes locales distintos sin cambiar su marca. Sumar manualmente un desplazamiento y luego mostrarlo en esa zona puede aplicarlo dos veces.

Este conversor usa UTC y exige Z en la fecha introducida. No deduce la zona por idioma o país; usa un conversor de zonas para una presentación local.

Precisión y rango forman parte del significado

La fracción de segundos puede representar milisegundos: 1.25 segundos no son 1250 segundos. Conserva la fracción si necesitas ordenar registros con precisión menor que un segundo.

Se admiten segundos con hasta 3 decimales o milisegundos enteros. Se validan las fechas, no se corrigen días inexistentes en silencio. No mide intervalos de segundos intercalares ni sustituye un contrato temporal especializado.

Ejemplo: dos números para el mismo instante

86400 segundos y 86400000 milisegundos representan 1970-01-02T00:00:00.000Z. Interpretar 86400 como milisegundos da 1970-01-01T00:01:26.400Z; no es un problema de idioma o calendario.

−0.25 segundos corresponde a 1969-12-31T23:59:59.750Z. El signo sitúa el instante antes del origen y la fracción se conserva; negativo no significa fecha inválida.

Referencias