Segundos o milisegundos
El error más común al manejar fechas es mezclar ambos. Las marcas Unix cuentan segundos desde el 1970-01-01 UTC; Date.now() de JavaScript cuenta milisegundos. Si pasas una marca Unix al constructor Date sin multiplicar por 1000, acabas en enero de 1970. Como regla práctica, un número de 10 dígitos son segundos y uno de 13 son milisegundos, que es justo como decide la detección automática.
Los estándares y sus diferencias
- ISO 8601 es el estándar base:
2024-01-15T10:30:00.000Z. La T separa fecha de hora y Z significa UTC.
- RFC 3339 es un perfil más estricto de ISO 8601 pensado para protocolos de internet. Exige un desplazamiento explícito, así que escribe
+00:00 en lugar de Z.
- ISO 9075 es la forma estándar de SQL,
2024-01-15 10:30:00: un espacio en vez de T y sin zona horaria. Es lo que muestran la mayoría de bases de datos.
- RFC 7231 es el formato de fecha HTTP usado en las cabeceras
Date, Expires y Last-Modified, siempre en GMT.
Los dos casos peculiares
Un Mongo ObjectID tiene 12 bytes y los cuatro primeros son la hora de creación en segundos Unix, así que cada ObjectID lleva una marca de tiempo incorporada. Esta herramienta la extrae al decodificar; al generar uno rellena con ceros los ocho bytes restantes en vez de inventar valores de máquina y contador.
Las fechas de serie de Excel cuentan días desde el 1899-12-30, y la parte fraccionaria representa la hora del día. Ese origen tan raro existe porque Excel reproduce deliberadamente un fallo de Lotus 1-2-3 que trataba 1900 como año bisiesto. Tomar el 1899-12-30 como día cero hace que todas las fechas desde marzo de 1900 cuadren, y por eso este conversor lo usa.
Todo es un mismo instante
Escribas lo que escribas, la herramienta lo interpreta como un único Date de JavaScript y vuelve a representar ese mismo instante en los once formatos. Nada se envía a ningún sitio: la conversión ocurre por completo en tu navegador.