Fecha y hora

Conversor FILETIMECada tick con su significado

Convierte valores de Windows y fechas en ambos sentidos. Elige la representación y el atributo LDAP para interpretar correctamente los valores especiales.

Conversor FILETIME

Entrada

La entrada se procesa en este navegador y no se envía a ningún servidor.

Resultados

Opciones

Época Windows: 1601-01-01 UTC · un tick = 100 ns.

Un valor por fila. Alto/bajo: high,low (decimal o 0x; palabras decimales con signo permitidas). Bytes: 16 cifras hexadecimales u ocho pares. Fecha: YYYY-MM-DDTHH:mm:ss[.1–7 cifras]Z o ±HH:mm; año ampliado +YYYYYY.

El orden solo afecta a los bytes. Elige el campo AD real. El decimal -1 se admite únicamente como control de escritura pwdLastSet.

Fechas UTC con siete decimales. Cocientes Unix redondeados hacia abajo y restos en ticks de 100 ns.

Hasta 1.000 líneas físicas y 100.000 unidades UTF-16. Se recortan espacios exteriores; las filas vacías son errores.

Introduce datos o carga un ejemplo.

El Conversor FILETIME permite revisar una fecha Windows extraída de un registro o de una exportación de Active Directory. Conserva el número original: una hoja de cálculo puede alterar sus últimas cifras antes de que llegues a comprobarlas.

Un cero puede ser el inicio de 1601, una cuenta sin caducidad o una hora de acceso desconocida. El atributo seleccionado determina la interpretación; el número por sí solo no identifica el campo.

Por qué usar el Conversor FILETIME

Orden de bytes separado del entero

El Conversor FILETIME muestra decimal, hexadecimal completo, palabras alta y baja y ambos órdenes de bytes. Little-endian solo se aplica a ocho bytes de entrada, evitando invertir por segunda vez un número ya interpretado.

Ocho bloques de bytes de colores invierten su orden y forman las dos mitades de un valor de 64 bits.

Estados especiales sin fechas inventadas

El modo general convierte cero en una fecha. accountExpires muestra sin caducidad y lastLogon indica desconocido. Un estado especial no recibe una fecha ficticia ni un timestamp Unix que pudiera confundirse con un acceso real.

Un mismo cero se ramifica hacia un calendario, un símbolo infinito y una hora desconocida.

Primero identifica la representación

01

Introduce primero la palabra alta

El formato high,low coloca la parte alta antes de la baja, aunque la estructura C declare primero la baja. Los bytes admiten dieciséis cifras hexadecimales seguidas u ocho pares separados por espacios.

02

Declara el desplazamiento horario

La conversión inversa exige Z o ±HH:mm, incluso si tu equipo está en UTC. El ejemplo se adapta al formato actual y muestra una vista previa con el texto y el tamaño de la sustitución antes de aplicarla.

03

Revisa que todas las filas sean fechas

El modo automático espera 350 ms tras editar. Al desactivarlo puedes usar Convertir o Ctrl/Cmd+Enter. Invertir requiere fechas válidas en todas las filas; Deshacer restaura juntos entrada, opciones y resultados.

Precisión y diagnóstico por fila

Siete decimales sin redondear

116444736000000001 equivale a 1970-01-01T00:00:00.0000001Z. La aritmética entera y la exportación como cadenas conservan el último tick. La fecha completa puede volver al mismo entero sin pasar por milisegundos.

Palabras COM con signo

Alta/baja admite DWORD sin signo y LONG decimales de 32 bits. Las palabras negativas se interpretan en complemento a dos y el informe incluye ambas notaciones. Esta regla no convierte un FILETIME completo negativo en una fecha.

Cociente Unix y resto

Para un timestamp LDAP basado en FILETIME se resta primero 116444736000000000. Los segundos y milisegundos se redondean hacia menos infinito y el resto no negativo queda en ticks. Así se conserva la fracción incluso antes de 1970.

Errores ligados al origen

Hasta 1.000 filas conservan texto original y número de línea. Una entrada incorrecta no detiene sus vecinas. Se muestran primero 50 resultados, pero la copia y el archivo JSON contienen todas las filas y sus diagnósticos.

Límites de entrada e interpretación

Guardar bits no equivale a obtener una fecha
Se admiten enteros hasta 18446744073709551615. Por encima de 9223372036854775807 se conservan las representaciones y se indica fuera del rango FileTimeToSystemTime, sin generar fecha. El máximo del modo general usa un año ISO ampliado.
El atributo cambia los valores especiales
accountExpires utiliza cero y el mayor entero con signo para indicar sin caducidad. pwdLastSet=0 exige revisar UF_DONT_EXPIRE_PASSWD y -1 decimal es un control de escritura. lastLogon=0 significa desconocido en ese controlador, no que nunca hubo acceso.
Fechas explícitas y válidas
Son obligatorios segundos y Z o ±HH:mm, limitado a ±14:00. Después del año 9999 se usa +YYYYYY. Se rechazan días imposibles, segundos intercalares, 24:00, -00:00 y más de siete decimales, sin corregirlos ni inferir zonas horarias.
No se adivina por la longitud
Selecciona decimal, entero hexadecimal, ocho bytes o high,low. No se admiten exponentes ni separadores de miles. Se eliminan espacios exteriores, pero las filas vacías siguen siendo errores. Un entero corto también puede ser válido.
Sin acceso al directorio o al disco
No hay conexión LDAP, lectura de registro o MFT, modificación de archivos ni auditoría de cuentas. GeneralizedTime, ticks .NET y fechas Excel son otros formatos. Un campo aislado tampoco permite decidir si una contraseña ha caducado.
Lotes acotados y cambios reversibles
El máximo es 100.000 unidades UTF-16 y 1.000 líneas físicas; superar cualquiera rechaza el lote. Ejemplo, Borrar e Invertir requieren vista previa y aplicación. Se puede deshacer una vez, hasta la siguiente edición manual.

Conversor FILETIME: preguntas

¿En qué se diferencian FILETIME y Unix?

FILETIME cuenta intervalos de 100 ns desde 1601; Unix cuenta segundos desde 1970. Hay que restar la diferencia entre épocas y dividir por 10000000. Guarda el resto si necesitas fracciones y comprueba antes si el campo contiene un valor especial.

¿Cómo se obtiene el FILETIME actual en Windows?

En PowerShell puedes usar [DateTime]::UtcNow.ToFileTimeUtc(). Esta página se centra en valores ya obtenidos y no incluye reloj en vivo. Una unidad de 100 ns no garantiza que el reloj del sistema mida con esa exactitud.

¿Cuál es el límite de fechas de FILETIME?

Aunque la estructura contiene 64 bits sin signo, FileTimeToSystemTime necesita un número menor que 2 elevado a 63. El modo general aplica esa frontera. Los valores superiores muestran sus bits y un aviso en lugar de una fecha.

¿Qué valores indican que una cuenta AD no caduca?

En accountExpires, tanto 0 como 9223372036854775807 indican que no hay caducidad. Selecciona ese atributo para aplicar la interpretación. No debe extenderse a todos los campos de Active Directory.

¿LDAP utiliza más de un formato de fecha?

Sí. whenCreated y whenChanged pueden usar GeneralizedTime, por ejemplo 20240101000000.0Z. No es un contador entero de ticks desde 1601 y esta herramienta no lo acepta como FILETIME. Consulta el esquema del campo.

¿Un resultado inesperado?

Conserva también el valor original

Usa el Conversor FILETIME con el nombre del campo de origen. Guarda el informe completo para conservar el orden de bytes, la interpretación elegida y las fracciones que acompañan a la fecha.