Convertir una fecha ISO a Windows FILETIME
Escriba una fecha y hora con Z o con desfase y obtenga el valor FILETIME de Windows, que cuenta pasos de 100 nanosegundos desde el 1 de enero de 1601 UTC: 2025-01-01T00:00:00Z es 133801632000000000. Útil para Active Directory, el registro y el análisis forense. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha y hora
- 2025-01-01T00:00:00Z
- Fecha y hora de entrada
- 2025-01-01T00:00:00Z
- Fecha y hora UTC
- 2025-01-01T00:00:00.0000000Z
- FILETIME de Windows
- 133801632000000000
El cálculo cuenta intervalos de 100 nanosegundos desde 1601-01-01T00:00:00Z y exige que la entrada indique expresamente su zona horaria mediante Z o un desplazamiento numérico. Emplea aritmética gregoriana y de enteros exacta, sin depender del reloj local ni del analizador de fechas de la plataforma. La respuesta incluye la entrada original, su representación UTC normalizada con siete decimales, la cadena FILETIME y una etiqueta de unidad clara.
Comprenda la época y la unidad de Windows FILETIME
Windows FILETIME es un contador entero cuyo punto cero es la medianoche UTC del 1 de enero de 1601. Cada incremento representa 100 nanosegundos; diez millones equivalen a un segundo y 864 mil millones, a un día. Esta época y resolución difieren de Unix, de los milisegundos de JavaScript y de los ticks de .
NET DateTime, por lo que cambiar una etiqueta o multiplicar una marca temporal conocida puede dar un resultado incorrecto. El conversor valida primero la fecha gregoriana, la hora, la fracción de segundo y la zona horaria.
Utilice zonas ISO explícitas para obtener un UTC determinista
Una fecha y hora ISO sin zona no identifica un instante único: podría ser la hora local de un equipo, la zona de un servidor o un dato cuyo desplazamiento se perdió al exportarlo. Por ello se exige Z para UTC o un desplazamiento como +05:30 o -04:00. Un valor positivo se resta para llegar a UTC y uno negativo se suma.
Por ejemplo, la medianoche con +02:00 corresponde a las 22:00 UTC del día anterior. El cálculo resuelve directamente ese cambio de día y devuelve el resultado normalizado terminado en Z. Nunca consulta la zona del sistema, reglas de horario de verano, fecha actual, configuración regional ni variables de entorno.
Se aceptan desplazamientos de hasta 14:00. Las zonas con nombre, como America/New_York, no se admiten porque requieren reglas históricas que pueden cambiar. Si la fuente solo contiene una hora local, determine y añada el desplazamiento histórico correcto antes de convertirla; adivinarlo produciría un FILETIME inequívoco pero erróneo.
Conserve la precisión y valide datos de migración
La entrada puede contener entre uno y siete dígitos de fracción de segundo. Los dígitos ausentes se completan por la derecha: .1 significa una décima de segundo, mientras que siete dígitos expresan toda la resolución de 100 nanosegundos. Una precisión mayor se rechaza, sin redondear ni truncar, porque ambas operaciones podrían desplazar el instante.
También se rechazan fechas imposibles, segundos intercalares, desplazamientos mal formados y horas fuera de rango. Tras aplicar la zona, el instante UTC debe quedar entre la época FILETIME y el último intervalo de 100 nanosegundos del año 9999. Estos límites permiten detectar filas defectuosas durante una migración.
Como no intervienen red, azar, reloj del sistema ni Date, una entrada aceptada siempre produce exactamente la misma salida.
Qué puede hacer con ella
Validar migraciones de directorios
Calcule valores FILETIME para campos temporales y conserve un UTC normalizado que pueda auditarse.
Analizar el Registro y líneas forenses
Cree referencias FILETIME conocidas desde instantes ISO explícitos para pruebas, investigaciones y cronologías.
Preguntas frecuentes
¿Cuál es la época de Windows FILETIME?
FILETIME comienza en 1601-01-01T00:00:00Z y cuenta intervalos de 100 nanosegundos desde ese instante.
¿Por qué debe incluir zona la fecha ISO?
Una fecha sin Z ni desplazamiento es ambigua. Exigir la zona hace determinista la conversión a UTC.
¿Cuántos dígitos fraccionarios se aceptan?
Se aceptan hasta siete, acordes con la resolución de 100 nanosegundos. Una precisión mayor se rechaza.
¿Se utiliza la zona o el reloj del sistema?
No. Solo se utilizan la entrada explícita y aritmética gregoriana determinista con enteros.
¿Por qué el resultado aparece como texto y no como número?
Porque los valores FILETIME actuales son mayores de lo que muchos programas y hojas de cálculo pueden guardar con exactitud como número. Mantenerlo como texto evita redondeos silenciosos antes de guardarlo o pasarlo a otro sistema.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/date/iso-to-windows-filetime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2025-01-01T00:00:00Z"}'const res = await fetch("https://api.kit.forhosting.com/date/iso-to-windows-filetime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2025-01-01T00:00:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/iso-to-windows-filetime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2025-01-01T00:00:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/iso-to-windows-filetime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2025-01-01T00:00:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2025-01-01T00:00:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/iso-to-windows-filetime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"datetime": "2025-01-01T00:00:00Z"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.iso_to_windows_filetime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Convierta una fecha y hora ISO 8601 al valor decimal Windows FILETIME utilizado por las API de Windows, Active Directory, el Registro y numerosas herramientas forenses.
Comprenda la época y la unidad de Windows FILETIME
Después determina el instante UTC exacto y mide el intervalo desde la época FILETIME mediante enteros. windows_filetime se devuelve como texto decimal porque muchos entornos JSON no representan exactamente estos valores. Así se evita el redondeo silencioso en navegadores, hojas de cálculo y aplicaciones. unit documenta la interpretación y utc_datetime ofrece una forma legible para comprobar el instante antes de almacenarlo o enviarlo. Cada conversión automatizada cuesta $0.002.
Conserve la precisión y valide datos de migración
Use windows_filetime para estructuras de Windows, atributos LDAP, exportaciones del Registro o cargas compatibles; use utc_datetime en auditorías y pruebas.
Casos de integración
Preparar cargas para API de Windows
Convierta una fecha UTC o con desplazamiento legible al FILETIME decimal exacto que espera una integración de Windows.
Preguntas técnicas
¿Por qué FILETIME se devuelve como cadena?
Los enteros FILETIME habituales superan el rango exacto de muchos números JSON. El texto decimal conserva todos los dígitos.
¿Cuánto cuesta una conversión?
Cada conversión mediante la API cuesta $0.002.