Дата и время

конвертер FILETIMEТочное время с учётом атрибута

Преобразуйте числа Windows и даты в обоих направлениях. Выберите представление и атрибут LDAP, чтобы отличить момент времени от специального состояния.

конвертер FILETIME

Ввод

Данные обрабатываются в этом браузере и не отправляются на сервер.

Результаты

Параметры

Эпоха Windows: 1601-01-01 UTC · один тик = 100 нс.

Одно значение в строке. Слова: high,low (десятичные или 0x; десятичные со знаком допустимы). Байты: 16 hex-цифр или восемь пар. Дата: YYYY-MM-DDTHH:mm:ss[.1–7 цифр]Z или ±HH:mm; расширенный год +YYYYYY.

Порядок влияет только на байты. Выберите реальное поле AD. Десятичное -1 допускается лишь как команда записи pwdLastSet.

Даты UTC содержат семь дробных цифр. Частные Unix округляются вниз; остатки указаны в тиках по 100 нс.

До 1 000 физических строк и 100 000 единиц UTF-16. Внешние пробелы удаляются; пустые строки считаются ошибками.

Введите данные или загрузите пример.

Конвертер FILETIME помогает прочитать дату из REG_BINARY или сверить выгрузку Active Directory с исходным числом. Сохраняйте целое как текст: электронная таблица может изменить последние разряды ещё до проверки.

Нулевое значение само по себе не объясняет смысл поля. Это может быть начало 1601 года, отсутствие срока действия учётной записи или неизвестное время входа. Здесь контекст задаётся явно.

Зачем нужен этот конвертер FILETIME

Порядок байтов отделён от числа

Конвертер FILETIME показывает десятичное число, полный hex, старшее и младшее слова и оба порядка байтов. Little-endian применяется только к восьми исходным байтам: уже прочитанное целое не переворачивается повторно.

Восемь цветных блоков байтов меняют порядок и соединяются с двумя половинами 64-битного значения.

Особое состояние не превращается в дату

В общем режиме ноль соответствует дате. Для accountExpires он означает отсутствие срока, для lastLogon — неизвестное время. Такие состояния не получают выдуманную дату или метку Unix, похожую на реальное событие.

Одно нулевое значение разветвляется к календарю, знаку бесконечности и неизвестному времени.

Сначала определите представление

01

Сначала старшее, затем младшее

В формате high,low первым вводится старшее слово, хотя структура C объявляет младшее раньше. Восемь байтов задаются шестнадцатью hex-цифрами подряд или восемью парами через пробел. Выбор порядка доступен только для байтов.

02

Укажите смещение для даты

Обратное преобразование требует Z или ±HH:mm. Часовой пояс компьютера не подставляется автоматически. Пример соответствует текущему формату; перед заменой показываются новый текст и объём изменения.

03

Проверьте состояния перед разворотом

Автоматический расчёт ждёт 350 мс после изменения. Без него доступны кнопка и Ctrl/Cmd+Enter. Разворот разрешён, только если все строки содержат даты. Отмена восстанавливает ввод, настройки и результат вместе.

Сверка без потери младших разрядов

Семь дробных разрядов сохраняются

116444736000000001 соответствует 1970-01-01T00:00:00.0000001Z. Целочисленные вычисления и строковое хранение чисел сохраняют последний тик. Полная дата возвращается в то же число без промежуточного округления до миллисекунд.

Слова COM со знаком

Старшее и младшее слова допускают беззнаковые DWORD и десятичные LONG в пределах 32 бит. Отрицательные слова читаются в дополнительном коде. Отчёт содержит обе формы, но это правило не делает отрицательное целое FILETIME датой.

Частное Unix вместе с остатком

Преобразование FILETIME сначала вычитает 116444736000000000. Секунды и миллисекунды округляются вниз, а неотрицательные остатки сохраняются в тиках. Поэтому дробь непосредственно перед началом 1970 года не пропадает при усечении к нулю.

Диагностика рядом с исходной строкой

Конвертер форматов времени принимает до 1 000 строк с сохранением исходного текста и номера. Ошибка одной строки не блокирует соседние. Сначала видны 50 результатов; копирование и JSON-файл всегда включают весь отчёт.

Границы форматов и выводов

Диапазон хранения шире диапазона дат
Чтение допускает числа до 18446744073709551615. Выше 9223372036854775807 сохраняются битовые представления и выдаётся состояние вне диапазона FileTimeToSystemTime, без даты. Верхняя дата общего режима использует расширенный год ISO.
Временные метки LDAP требуют имени поля
Для accountExpires ноль и максимальное знаковое целое означают отсутствие срока. pwdLastSet=0 требует проверки UF_DONT_EXPIRE_PASSWD; десятичное -1 служит командой записи. lastLogon=0 означает неизвестное время на данном контроллере, а не доказательство отсутствия входов.
Только явные и корректные даты
Нужны секунды и Z либо ±HH:mm в пределах ±14:00. Годы после 9999 записываются как +YYYYYY. Невозможные дни, високосные секунды, 24:00, -00:00 и более семи дробных цифр отклоняются без исправления или подбора часового пояса.
Формат не угадывается по длине
Выберите десятичное число, полный hex, восемь байтов или high,low. Экспоненциальная запись и разделители тысяч не поддерживаются. Внешние пробелы удаляются, пустые строки остаются ошибками. Короткое целое тоже может быть допустимым значением.
Без доступа к каталогу и файлам
Нет запросов LDAP, чтения реестра или MFT, изменения файловых дат и аудита учётных записей. GeneralizedTime, тики .NET и даты Excel относятся к другим форматам. По одному полю нельзя установить срок действия пароля или фактическое состояние учётной записи.
Ограниченный пакет и отмена замены
Допускаются 100 000 кодовых единиц UTF-16 и 1 000 физических строк. Превышение отклоняет весь пакет. Пример, очистка и разворот требуют просмотра замены и применения. Однократная отмена доступна до следующего ручного изменения.

Конвертер FILETIME: вопросы

Как прочитать дату FILETIME из значения REG_BINARY?

Если восемь байтов уже извлечены из REG_BINARY, выберите байтовый формат и правильный порядок. Для обычного дампа Windows это часто little-endian, но его надо подтвердить по источнику. Сама страница не читает реестр и не определяет смещение поля в записи.

Как преобразовать FILETIME в удобочитаемую строку?

Выберите формат исходного числа и проверьте контекст атрибута. Обычный результат содержит дату UTC с семью дробными цифрами. Если в отчёте указан особый статус, у этого значения нет даты в выбранном контексте.

Почему при отображении FILETIME появляется сдвиг на несколько часов?

Частая причина — сравнение UTC с местным отображением или повторное применение часового смещения. Windows FILETIME описывает UTC-момент. Здесь вывод остаётся в UTC, а обратный ввод обязан содержать явный Z или смещение.

Как рассчитать значение accountExpires для заданной даты?

Переключитесь на Дата → FILETIME и выберите accountExpires. Введите дату с секундами и смещением. Единица — 100 нс, не микросекунда. Значения ноль и 9223372036854775807 имеют особый смысл отсутствия срока, а не обычной даты окончания.

Учитываются ли високосные секунды при таком расчёте времени?

Ввод с секундой 60 отклоняется. Инструмент использует строгую гражданскую дату и не рассчитывает отдельную шкалу накопленных високосных секунд. Для сопоставления с GPS или TAI нужна модель другой шкалы времени.

Неожиданный результат?

Сохраните источник вместе с результатом

Используйте конвертер FILETIME вместе с именем исходного поля. Полный отчёт сохраняет порядок байтов, контекст и дробные остатки, чтобы преобразованную дату можно было проверить позже.