Что такое временная метка Windows FILETIME?

Временная метка Windows FILETIME — это 64-битное значение, представляющее количество 100-наносекундных интервалов, прошедших с 1 января 1601 года в 00:00:00 UTC. Эта точка отсчёта предшествует более известной Unix-эпохе (1 января 1970 года) ровно на 369 лет. Microsoft выбрала эту дату начала, поскольку она соответствует началу 400-летнего цикла григорианского календаря, что упрощает вычисления високосных лет.

Значения FILETIME встречаются во всей экосистеме Windows, включая метаданные файлов NTFS, атрибуты Active Directory (такие как accountExpires, lastLogonTimestamp и pwdLastSet), записи реестра Windows и запросы к LDAP-каталогам. Поскольку эти временные метки хранятся в виде больших целых чисел, а не дат в читаемом формате, для их ручного преобразования необходимо знать как смещение эпохи, так и интервал тика.

Описание инструмента

Этот инструмент преобразует временные метки Windows FILETIME в читаемые форматы даты и времени и обратно. Вставьте значение FILETIME, чтобы мгновенно увидеть соответствующую дату в нескольких форматах, или выберите дату и время для получения соответствующего значения FILETIME. Все преобразования выполняются с учётом часового пояса с возможностью поиска по списку часовых поясов.

Примеры

Windows FILETIME Дата (UTC)
132812448000000000 2021-12-01 00:00:00
116444736000000000 1970-01-01 00:00:00 (Unix-эпоха)
130000000000000000 2012-02-17 05:46:40
133600000000000000 2024-05-17 04:26:40

Возможности

  • Двунаправленное преобразование между тиками Windows FILETIME и датами в читаемом формате
  • Несколько форматов вывода: тики FILETIME, Unix-временная метка (в секундах), ISO 8601, UTC, местное время и относительное время
  • Поиск по списку часовых поясов с отображением смещения UTC для точного преобразования в местное время
  • Кнопка для вставки текущего времени в качестве временной метки Windows одним нажатием
  • Выбор даты и времени для обратного преобразования из выбранной даты в FILETIME

Принцип работы

Конвертер применяет фиксированное смещение для перевода между эпохами Windows и Unix. Эпоха Windows начинается 1 января 1601 года, тогда как эпоха Unix — 1 января 1970 года. Разница между этими двумя датами составляет ровно 11 644 473 600 секунд, или 116 444 736 000 000 000 в 100-наносекундных тиках.

Для преобразования значения FILETIME в дату инструмент вычитает смещение эпохи и делит на 10 000, получая количество миллисекунд с начала Unix-эпохи. При обратном преобразовании Unix-миллисекунды умножаются на 10 000 и к результату добавляется смещение. Все вычисления выполняются с использованием BigInt для сохранения полной 64-битной точности значений FILETIME.

Сценарии использования

  • Системное администрирование: расшифровка атрибутов Active Directory, таких как lastLogonTimestamp или pwdLastSet, при устранении проблем с учётными записями или аудите действий пользователей
  • Цифровая криминалистика: преобразование временных меток файлов NTFS в ходе реагирования на инциденты для восстановления хронологии событий по образам дисков Windows или журналам событий
  • Разработка программного обеспечения: отладка и проверка значений FILETIME, встречающихся в Windows API, записях реестра или метаданных файлов в процессе разработки приложений