Windows FILETIME zaman damgası nedir?

Windows FILETIME zaman damgası, 1 Ocak 1601 tarihinde 00:00:00 UTC'den bu yana geçen 100 nanosaniyelik aralıkların sayısını temsil eden 64 bitlik bir değerdir. Bu başlangıç noktası, daha yaygın olarak bilinen Unix epoch'undan (1 Ocak 1970) tam olarak 369 yıl önceye denk gelir. Microsoft bu başlangıç noktasını seçmiştir; çünkü Gregoryen takviminde 400 yıllık bir döngünün başlangıcını işaret eder ve bu durum artık yıl hesaplamalarını basitleştirir.

FILETIME değerleri; NTFS dosya meta verileri, Active Directory öznitelikleri (accountExpires, lastLogonTimestamp ve pwdLastSet gibi), Windows Registry girdileri ve LDAP dizin sorguları dahil olmak üzere Windows sistemlerinin pek çok yerinde karşımıza çıkar. Bu zaman damgaları insan tarafından okunabilir tarihler yerine büyük tam sayılar olarak depolandığından, bunları manuel olarak dönüştürmek hem epoch farkını hem de tick aralığını bilmeyi gerektirir.

Araç açıklaması

Bu araç, Windows FILETIME zaman damgalarını okunabilir tarih ve saat formatlarına ve geri dönüştürür. Bir FILETIME değeri yapıştırarak ilgili tarihi birden fazla formatta anında görüntüleyin ya da bir tarih ve saat seçerek karşılık gelen FILETIME değerini oluşturun. Tüm dönüşümler, aranabilir saat dilimi seçicisiyle birlikte saat dilimine duyarlı biçimde gerçekleştirilir.

Örnekler

Windows FILETIME Tarih (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

Özellikler

  • Windows FILETIME tick'leri ile insan tarafından okunabilir tarihler arasında çift yönlü dönüşüm
  • Birden fazla çıktı formatı: FILETIME tick'leri, Unix zaman damgası (saniye), ISO 8601, UTC, yerel saat ve göreli zaman
  • Doğru yerel saat dönüşümü için UTC farkı göstergeli aranabilir saat dilimi seçici
  • Geçerli saati Windows zaman damgası olarak eklemek için tek tıklamalı düğme
  • Seçilen bir tarihten FILETIME'a ters dönüşüm için tarih ve saat seçici

Nasıl çalışır

Dönüştürücü, Windows ve Unix epoch'ları arasında çeviri yapmak için sabit bir fark uygular. Windows epoch'u 1 Ocak 1601'de başlarken, Unix epoch'u 1 Ocak 1970'te başlar. Bu iki tarih arasındaki fark tam olarak 11.644.473.600 saniye, yani 100 nanosaniyelik tick cinsinden 116.444.736.000.000.000'dir.

Bir FILETIME değerini tarihe dönüştürmek için araç, epoch farkını çıkarır ve Unix epoch'undan bu yana geçen milisaniyeleri elde etmek amacıyla 10.000'e böler. Ters yönde ise Unix milisaniyelerini 10.000 ile çarpar ve farkı geri ekler. Tüm aritmetik işlemler, FILETIME değerlerinin tam 64 bitlik hassasiyetini korumak için BigInt kullanılarak gerçekleştirilir.

Kullanım senaryoları

  • Sistem yönetimi: Hesap sorunlarını giderirken veya kullanıcı etkinliğini denetlerken lastLogonTimestamp ya da pwdLastSet gibi Active Directory özniteliklerini çözümleme
  • Dijital adli bilişim: Olay müdahalesi sırasında Windows disk görüntülerinden veya olay günlüklerinden zaman çizelgesi oluşturmak için NTFS dosya zaman damgalarını dönüştürme
  • Yazılım geliştirme: Uygulama geliştirme sürecinde Windows API'leri, registry girdileri veya dosya meta verilerinde karşılaşılan FILETIME değerlerini hata ayıklama veya doğrulama