Skip to content

Conversor de Marca de Tiempo

Convierte entre marcas de tiempo Unix y fechas legibles al instante — además soporta Windows FILETIME, .NET Ticks, LDAP/AD, Chrome WebKit y Excel OADate. Pega cualquier valor y el formato se detecta automáticamente, con copia en un clic.

Conversor

Marca de tiempo Unix en vivo
Segundos0
Milisegundos0

Marca de tiempo → Fecha

Fecha → Marca de tiempo

¿Qué es una marca de tiempo Unix?

Una marca de tiempo Unix (también llamada tiempo epoch Unix o tiempo POSIX) es el número de segundos transcurridos desde el 1970-01-01 00:00:00 UTC — el epoch Unix. Es la forma más común de representar un instante en programación.

Por ejemplo, 1700000000 corresponde al 14 de noviembre de 2023, 22:13:20 UTC.

Características de las marcas de tiempo Unix:

  • Independientes de la zona horaria — siempre medidas en UTC
  • Continuas — sin segundos intercalares en la mayoría de implementaciones
  • Compactas — un solo entero frente a una cadena de fecha completa

Segundos vs Milisegundos

Las marcas de tiempo Unix tienen dos resoluciones comunes:

SegundosMilisegundos
Ejemplo17000000001700000000000
Precisión1 segundo1 milisegundo
Usado porAPIs Unix/Linux, la mayoría de bases de datosJavaScript (Date.now()), Java, sistemas de registro
Dígitos~10 dígitos~13 dígitos

Cómo distinguirlos: Si el número tiene 13+ dígitos, son milisegundos. Este conversor detecta automáticamente la resolución — solo pega el número.

Casos de Uso Comunes

  • Depuración de registros — Convertir marcas de tiempo en registros de servidor a horas legibles
  • Integraciones API — Muchas APIs REST usan marcas de tiempo Unix para campos de fecha
  • Consultas de base de datos — Buscar registros por rango de tiempo usando valores epoch
  • Programación — Calcular retrasos o programar eventos futuros con aritmética de marcas de tiempo
  • UUID v7 — UUID v7 codifica una marca de tiempo Unix en milisegundos en sus primeros 48 bits; decódificala para ver cuándo se creó el UUID
  • Administración de Active Directory — Convertir marcas LDAP lastLogon, pwdLastSet y accountExpires a fechas legibles para auditorías de usuarios
  • Automatización Excel / Office — Decodificar números de serie OADate al interoperar con hojas de cálculo y DateTime.FromOADate
  • Forense de Chrome — Leer marcas WebKit de las bases SQLite History y Cookies para depuración o forense digital

¿Qué es Windows FILETIME?

Windows FILETIME es un valor de 64 bits que cuenta intervalos de 100 nanosegundos desde el 1601-01-01 00:00:00 UTC. Es el formato de tiempo nativo de la API Win32, del sistema de archivos NTFS y de COM/OLE.

Una estructura FILETIME almacena el valor como dos DWORD de 32 bits: dwLowDateTime y dwHighDateTime. Lo encuentras en GetFileTime(), CoFileTimeNow() y en los registros de la tabla maestra de archivos (MFT) de NTFS.

Fórmula de conversión:

unix_seconds = (filetime / 10000000) - 11644473600

Por ejemplo, 1335927553562300002024-05-04 04:32:15 UTC. Este conversor detecta automáticamente valores de 18 dígitos por debajo de ~3 × 10¹⁷ como FILETIME.

¿Qué son .NET DateTime Ticks?

.NET Ticks es un entero con signo de 64 bits que cuenta intervalos de 100 nanosegundos desde el 0001-01-01 00:00:00 UTC (año 1). Es el almacenamiento subyacente de DateTime en C#/.NET, accesible mediante DateTime.Now.Ticks.

El rango cubre fechas desde 0001-01-01 hasta 9999-12-31 — un solo valor long de hasta ~3,16 × 10¹⁸. A diferencia de FILETIME (basado en 1601), los ticks de .NET comienzan en el año 1 para evitar valores negativos y simplificar la aritmética de calendario.

Por ejemplo, 638514336000000000 ticks → 2024-05-16 00:00:00 UTC. Los valores a partir de ~3 × 10¹⁷ se detectan como ticks de .NET; por debajo, FILETIME es más probable.

¿Qué es la marca de tiempo LDAP / Active Directory?

Las marcas LDAP (usadas por Microsoft Active Directory) son numéricamente idénticas a FILETIME — intervalos de 100 nanosegundos desde el 1601-01-01 UTC. La diferencia es puramente de contexto: atributos de AD como lastLogon, lastLogonTimestamp, pwdLastSet y accountExpires almacenan valores FILETIME bajo el esquema LDAP.

Los administradores de AD convierten rutinariamente estos valores para auditar la actividad de los usuarios y la caducidad de contraseñas. En PowerShell:

powershell
[DateTime]::FromFileTime($value).ToString('yyyy-MM-dd HH:mm:ss')

Por ejemplo, 1325145600000000002020-12-03 00:00:00 UTC. Un accountExpires con valor 9223372036854775807 (Int64.MaxValue) significa "nunca caduca".

¿Qué es la marca de tiempo Chrome / WebKit?

Las marcas de Chrome y WebKit cuentan microsegundos (no 100 nanosegundos) desde el 1601-01-01 UTC. Aparecen en las bases de datos SQLite History, Cookies y Login Data de Chrome — útiles para depuración, forense y recuperación de datos.

Como la unidad es μs (no 100ns), los valores son 10× más pequeños que FILETIME para el mismo instante. Los valores de la época actual tienen 17 dígitos (~1,3 × 10¹⁶).

Para consultar el historial de Chrome en SQL:

sql
SELECT datetime(time / 1000000 - 11644473600, 'unixepoch') AS visit_time
FROM urls ORDER BY visit_time DESC LIMIT 10;

Por ejemplo, 133176960000000002023-01-09 00:00:00 UTC.

¿Qué es Microsoft OADate / el número de serie de Excel?

OADate (OLE Automation Date) es un double que cuenta días desde el 1899-12-30. La parte fraccionaria representa la hora del día (0,5 = mediodía). Excel, Google Sheets y la automatización de Office usan internamente este formato de serie.

¿Por qué 1899-12-30 y no 1900-01-01? Excel replica intencionadamente un bug de año bisiesto de 1900 (1900 no fue bisiesto, pero Lotus 1-2-3 lo trató como si lo fuera). Desplazar la época dos días atrás mantiene las fechas de Excel compatibles con el bug histórico.

Por ejemplo, 45678.52025-01-21 12:00:00. En C#: DateTime.FromOADate(45678.5). En Excel: =FECHA(2025;1;21) devuelve 45678.

Preguntas Frecuentes

¿Qué es el problema del año 2038? Las marcas de tiempo Unix en enteros con signo de 32 bits alcanzan su máximo en 2147483647 (19 de enero de 2038, 03:14:07 UTC). Los sistemas que aún usan time_t de 32 bits sufrirán un desbordamiento. La mayoría de los sistemas modernos ya han migrado a marcas de tiempo de 64 bits, que no se desbordarán en 292 mil millones de años.

¿Cómo maneja esta herramienta las zonas horarias? Las marcas de tiempo Unix son inherentemente UTC. Este conversor muestra tanto la representación UTC como la zona horaria local de tu navegador.

¿Puedo usar marcas de tiempo negativas? Sí. Las marcas de tiempo Unix negativas representan fechas anteriores al epoch (1970-01-01 00:00:00 UTC). Por ejemplo, -86400 es el 31 de diciembre de 1969, 00:00:00 UTC — exactamente un día antes del epoch.

¿Cuál es la diferencia entre FILETIME y las marcas LDAP? Numéricamente, ninguna — ambas son intervalos de 100 nanosegundos desde el 1601-01-01 UTC. "FILETIME" es el nombre Win32/COM; "marca LDAP" se refiere al mismo valor almacenado en atributos de Active Directory como lastLogon. Usa la misma fórmula de conversión para ambas.

¿Por qué .NET DateTime Ticks comienza en el año 1? El calendario de .NET comienza en el 0001-01-01 (el inicio convencional del calendario gregoriano) para que todas las fechas válidas produzcan valores de tick positivos. Esto evita la complejidad de gestión de signos de la época de 1601 de FILETIME y simplifica la aritmética de fechas en todo el rango 0001–9999.

¿Por qué la época OADate es el 30 de diciembre de 1899? Excel heredó un bug de Lotus 1-2-3 que trataba 1900 como año bisiesto (no lo fue). Para que fechas como el 1 de marzo de 1900 coincidan entre Excel y la realidad, la época de OLE Automation se fijó en el 1899-12-30 — dos días antes del nominal "1 de enero de 1900", compensando el 29 de febrero de 1900 fantasma.