O que é um timestamp Windows FILETIME?

Um timestamp Windows FILETIME é um valor de 64 bits que representa o número de intervalos de 100 nanossegundos decorridos desde 1 de janeiro de 1601 às 00:00:00 UTC. Esta época é anterior à época Unix mais conhecida (1 de janeiro de 1970) em exatamente 369 anos. A Microsoft escolheu este ponto de partida porque marca o início de um ciclo de 400 anos no calendário gregoriano, o que simplifica os cálculos de anos bissextos.

Os valores FILETIME aparecem em todo o sistema Windows, incluindo metadados de ficheiros NTFS, atributos do Active Directory (como accountExpires, lastLogonTimestamp e pwdLastSet), entradas do Registo do Windows e consultas de diretório LDAP. Como estes timestamps são armazenados como inteiros de grande dimensão em vez de datas legíveis por humanos, a sua conversão manual requer o conhecimento tanto do deslocamento da época como do intervalo de ticks.

Descrição da ferramenta

Esta ferramenta converte timestamps Windows FILETIME para formatos de data e hora legíveis e vice-versa. Cole um valor FILETIME para ver instantaneamente a data correspondente em múltiplos formatos, ou selecione uma data e hora para gerar o valor FILETIME correspondente. Todas as conversões têm suporte a fuso horário com um seletor de fuso horário pesquisável.

Exemplos

Windows FILETIME Data (UTC)
132812448000000000 2021-12-01 00:00:00
116444736000000000 1970-01-01 00:00:00 (época Unix)
130000000000000000 2012-02-17 05:46:40
133600000000000000 2024-05-17 04:26:40

Funcionalidades

  • Conversão bidirecional entre ticks Windows FILETIME e datas legíveis por humanos
  • Múltiplos formatos de saída: ticks FILETIME, timestamp Unix (segundos), ISO 8601, UTC, hora local e hora relativa
  • Seletor de fuso horário pesquisável com exibição de deslocamento UTC para conversão precisa de hora local
  • Botão de um clique para inserir a hora atual como timestamp Windows
  • Seletor de data e hora para conversão inversa de uma data escolhida para FILETIME

Como funciona

O conversor aplica um deslocamento fixo para traduzir entre as épocas Windows e Unix. A época Windows começa a 1 de janeiro de 1601, enquanto a época Unix começa a 1 de janeiro de 1970. A diferença entre estas duas datas é exatamente 11.644.473.600 segundos, ou 116.444.736.000.000.000 em ticks de 100 nanossegundos.

Para converter um valor FILETIME numa data, a ferramenta subtrai o deslocamento da época e divide por 10.000 para obter milissegundos desde a época Unix. Para a direção inversa, multiplica os milissegundos Unix por 10.000 e adiciona novamente o deslocamento. Toda a aritmética utiliza BigInt para preservar a precisão total de 64 bits dos valores FILETIME.

Casos de utilização

  • Administração de sistemas: Descodifique atributos do Active Directory como lastLogonTimestamp ou pwdLastSet ao resolver problemas de conta ou auditar a atividade de utilizadores
  • Forense digital: Converta timestamps de ficheiros NTFS durante a resposta a incidentes para estabelecer cronologias a partir de imagens de disco Windows ou registos de eventos
  • Desenvolvimento de software: Depure ou verifique valores FILETIME encontrados em APIs Windows, entradas de registo ou metadados de ficheiros durante o desenvolvimento de aplicações