Czym jest znacznik czasu Windows FILETIME?

Znacznik czasu Windows FILETIME to 64-bitowa wartość reprezentująca liczbę 100-nanosekundowych interwałów, które upłynęły od 1 stycznia 1601 roku o godzinie 00:00:00 UTC. Ta epoka poprzedza powszechnie znany Unix epoch (1 stycznia 1970 roku) o dokładnie 369 lat. Microsoft wybrał ten punkt startowy, ponieważ wyznacza on początek 400-letniego cyklu w kalendarzu gregoriańskim, co upraszcza obliczenia związane z latami przestępnymi.

Wartości FILETIME pojawiają się w całym systemie Windows, w tym w metadanych plików NTFS, atrybutach Active Directory (takich jak accountExpires, lastLogonTimestamp i pwdLastSet), wpisach rejestru Windows oraz zapytaniach do katalogów LDAP. Ponieważ znaczniki czasu są przechowywane jako duże liczby całkowite, a nie daty czytelne dla człowieka, ich ręczna konwersja wymaga znajomości zarówno przesunięcia epoki, jak i interwału tiku.

Opis narzędzia

To narzędzie konwertuje znaczniki czasu Windows FILETIME na czytelne formaty daty i godziny oraz odwrotnie. Wklej wartość FILETIME, aby natychmiast zobaczyć odpowiadającą jej datę w wielu formatach, lub wybierz datę i godzinę, aby wygenerować pasującą wartość FILETIME. Wszystkie konwersje uwzględniają strefy czasowe dzięki wyszukiwarce stref czasowych.

Przykłady

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

Funkcje

  • Dwukierunkowa konwersja między tikami Windows FILETIME a datami czytelnymi dla człowieka
  • Wiele formatów wyjściowych: tiki FILETIME, Unix timestamp (sekundy), ISO 8601, UTC, czas lokalny i czas względny
  • Wyszukiwarka stref czasowych z wyświetlaniem przesunięcia UTC dla dokładnej konwersji czasu lokalnego
  • Przycisk jednego kliknięcia do wstawienia bieżącego czasu jako znacznika czasu Windows
  • Selektor daty i godziny do odwrotnej konwersji z wybranej daty na wartość FILETIME

Jak to działa

Konwerter stosuje stałe przesunięcie do tłumaczenia między epokami Windows i Unix. Epoka Windows rozpoczyna się 1 stycznia 1601 roku, natomiast Unix epoch – 1 stycznia 1970 roku. Różnica między tymi dwiema datami wynosi dokładnie 11 644 473 600 sekund, czyli 116 444 736 000 000 000 w tikach 100-nanosekundowych.

Aby przekonwertować wartość FILETIME na datę, narzędzie odejmuje przesunięcie epoki i dzieli przez 10 000, aby uzyskać milisekundy od Unix epoch. W kierunku odwrotnym mnoży milisekundy Unix przez 10 000 i dodaje przesunięcie. Wszystkie obliczenia wykorzystują BigInt, aby zachować pełną 64-bitową precyzję wartości FILETIME.

Przypadki użycia

  • Administracja systemem: Dekodowanie atrybutów Active Directory, takich jak lastLogonTimestamp lub pwdLastSet, podczas rozwiązywania problemów z kontami lub audytowania aktywności użytkowników
  • Informatyka śledcza: Konwersja znaczników czasu plików NTFS podczas reagowania na incydenty w celu ustalenia chronologii zdarzeń na podstawie obrazów dysków Windows lub dzienników zdarzeń
  • Tworzenie oprogramowania: Debugowanie lub weryfikacja wartości FILETIME napotkanych w Windows API, wpisach rejestru lub metadanych plików podczas tworzenia aplikacji