Cómo convertir una marca Unix
Introduce un valor epoch numérico o una fecha ISO completa con zona. Usa una unidad explícita cuando la conozcas. El modo automático decide por magnitud y muestra la interpretación detectada.
- Elige Automático, Segundos, Milisegundos o ISO; ISO exige hora completa y Z o un desplazamiento numérico.
- Escribe el número sin separadores ni sufijos. Se admiten segundos decimales.
- Compara el ISO UTC, la hora local, los segundos y los milisegundos.
- Confirma la zona del navegador y la unidad detectada antes de usar el resultado.
Ejemplos y comportamiento esperado
| Entrada | Salida | Notas |
|---|---|---|
0 segundos |
1970-01-01T00:00:00.000Z |
El epoch Unix empieza el 1 de enero de 1970 a medianoche UTC. |
1704067200 segundos |
2024-01-01T00:00:00.000Z |
Diez dígitos modernos suelen ser segundos. |
1704067200000 milisegundos |
2024-01-01T00:00:00.000Z |
Trece dígitos modernos suelen ser milisegundos. |
2024-01-01T08:00:00+08:00 |
2024-01-01T00:00:00.000Z |
Se aplica el desplazamiento antes de mostrar UTC. |
-1 segundo |
1969-12-31T23:59:59.000Z |
Los valores negativos representan instantes anteriores al epoch. |
2024-02-30T00:00:00Z |
Fecha ISO inválida |
La validación estricta rechaza fechas imposibles. |
Segundos, milisegundos y detección
Una marca Unix cuenta tiempo desde 1970-01-01T00:00:00Z. Muchos sistemas almacenan segundos, mientras Date de JavaScript usa milisegundos. Confundirlos cambia el resultado por un factor de mil; el modo explícito es el más seguro.
Automático trata valores absolutos de 100.000.000.000 o más como milisegundos y menores como segundos. Funciona para fechas modernas habituales, pero no puede conocer la intención en fechas extremas. Revisa siempre el modo detectado.
- Diez dígitos modernos suelen indicar segundos.
- Trece dígitos suelen indicar milisegundos.
- Se admiten valores negativos dentro del rango Date.
ISO y validación de calendario
El modo ISO exige fecha, hora, segundos y Z o un desplazamiento +HH:MM/-HH:MM. La zona obligatoria evita que dispositivos diferentes interpreten una fecha local sin zona como instantes distintos. Se admiten de una a tres cifras de milisegundos.
Se comprueban campos de calendario además de Date.parse. Fechas como 2024-02-30, hora 25 o un desplazamiento inválido se rechazan en vez de normalizarse silenciosamente.
- Z significa UTC.
- Usa un desplazamiento numérico para un offset conocido.
- Abreviaturas como CST son ambiguas y no se aceptan.
UTC, hora local y zona
El resultado ISO siempre es UTC. La hora local usa el idioma y la zona IANA del navegador, con sus reglas de horario de verano. Dos usuarios pueden ver relojes distintos para el mismo instante, mientras UTC y epoch siguen iguales.
Un offset representa un instante concreto; una zona IANA contiene reglas históricas y futuras. Para planificación regional, guarda el instante UTC y también la zona IANA cuando importe la hora de pared futura.
- Compara registros y API en UTC.
- La hora local es presentación humana, no almacenamiento portable.
- Comprueba la zona en escritorios remotos o al viajar.
Rango, precisión y segundos intercalares
Date admite aproximadamente ±8,64×10^15 milisegundos. Fuera de ese rango se rechaza. Los números usan precisión de JavaScript, por lo que valores enormes o fracciones pueden perder exactitud.
Unix y Date no representan 23:59:60. La herramienta no es para escalas astronómicas o relojes monotónicos. Para APIs y registros, ISO UTC, segundos y milisegundos son las formas interoperables.
- No uses comas ni sufijos como ms.
- NaN e Infinity no son válidos.
- No se representan segundos intercalares.
Usos y diagnóstico
Resulta útil para bases de datos, logs, declaraciones de JWT, analítica, webhooks y planificadores. Ayuda a detectar unidad, zona y eventos futuros o caducados.
Primero identifica la unidad documentada y usa modo explícito. Una diferencia de horas suele ser zona; décadas o milenios suelen indicar segundos frente a milisegundos. Conserva el valor original en incidentes.
- Leer iat, exp y nbf.
- Construir una línea temporal de logs.
- Verificar migraciones entre columnas de segundos y milisegundos.
- Preservar el texto firmado de una cabecera temporal.
Errores y límites
Se separan entrada vacía, número mal formado, ISO inválido, fecha imposible y rango excedido. No se aceptan separadores, sufijos, fechas sin hora ni ISO sin zona.
No interpreta duraciones, cron, frases relativas, fechas seriales de Excel ni GPS. Para recurrencias y horario de verano usa una biblioteca de planificación con zonas.
- Una marca válida no prueba que el evento sea fiable.
- La detección automática no sustituye un esquema.
- Documenta la unidad en nombres de campos.
Diferencias con UUID y hash
Una marca representa tiempo y es predecible; no es un identificador secreto. UUID v4 aporta aleatoriedad y un hash resume contenido. HMAC autentica una marca junto con un mensaje.
Convierte una copia para lectura humana, pero conserva el texto exacto al verificar firmas porque cambiar formato o unidad cambia los bytes autenticados.