UUID'ler zaman damgalarını nasıl saklar?

Birçok UUID sürümü, zaman damgasını doğrudan kendi yapısına gömer. RFC 4122 ile tanıtılan UUID v1, 15 Ekim 1582'den itibaren 100 nanosaniyelik aralıkları temsil eden 60 bitlik bir Gregoryen zaman damgasını kodlar. UUID v6, daha iyi sıralanabilirlik için aynı zaman damgası alanlarını yeniden düzenler; RFC 9562 ile tanımlanan UUID v7 ise milisaniye cinsinden 48 bitlik bir Unix epoch zaman damgası saklar. Bu gömülü zaman damgaları, bir UUID'nin tam olarak ne zaman oluşturulduğunu kurtarmayı mümkün kılar — hata ayıklama, denetim ve adli analiz için oldukça kullanışlıdır.

Her UUID zaman bilgisi taşımaz. 3, 4 ve 5. sürümler rastgele verilerden veya namespace hash'lerinden türetilir, dolayısıyla kurtarılabilir bir zaman damgası içermezler. Sürüm 2 (DCE Security) bir zaman damgası içerir ancak pratikte nadiren kullanılır.

Araç açıklaması

Bu araç, zamana dayalı UUID'lere gömülü zaman damgasını çıkarır ve çözer. Herhangi bir UUID yapıştırın; kodlanmış tarih ve saati anında birden fazla formatta görün: ISO 8601, UTC, yerel saat ve hem saniye hem de milisaniye cinsinden Unix zaman damgaları. Araç, UUID sürümünü otomatik olarak algılar ve doğru çözme algoritmasını uygular.

Örnekler

UUID v1 girişi:

6ba7b810-9dad-11d1-80b4-00c04fd430c8 → 7 Nisan 1998

UUID v7 girişi:

018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 → 3 Mayıs 2024

UUID v4 girişi (zaman damgası yok):

550e8400-e29b-41d4-a716-446655440000 → "Bu UUID sürümü zaman damgası içermiyor"

Özellikler

  • UUID v1 (Gregoryen zaman damgası), v6 (yeniden sıralanmış Gregoryen) ve v7 (Unix epoch milisaniye) sürümlerini destekler
  • Sonuçları ISO 8601, UTC, yerel saat ve Unix zaman damgası formatlarında gösterir
  • UUID sürümünü otomatik olarak algılar ve doğru çözme yöntemini seçer
  • Çıkarma işlemine geçmeden önce UUID formatını doğrular
  • Zaman damgası içermeyen UUID sürümleri için açık bir mesaj gösterir

Nasıl çalışır

Zamana dayalı her UUID sürümü, zaman damgasını farklı şekilde saklar:

  • UUID v1, 60 bitlik bir Gregoryen zaman damgasını üç alana böler: time_low (bit 0–31), time_mid (bit 32–47) ve time_hi (bit 48–59). Zaman damgası, 15 Ekim 1582'den itibaren 100 nanosaniyelik aralıkları sayar.
  • UUID v6, v1 zaman damgası alanlarını en anlamlı bitler önce gelecek şekilde yeniden sıralar; böylece UUID'ler aynı Gregoryen epoch kullanılarak oluşturulma zamanına göre doğal olarak sıralanabilir hale gelir.
  • UUID v7 daha basit bir yaklaşım benimser: ilk 48 bit, milisaniye cinsinden standart bir Unix zaman damgası tutar; bu da çıkarmayı kolay ve modern sistemlerle uyumlu hale getirir.

Kullanım senaryoları

  • Dağıtık sistemlerde hata ayıklama — bir kayıt veya olaya atanan UUID'yi çözerek tam olarak ne zaman oluşturulduğunu belirleyin
  • Denetim ve adli inceleme — zaman tabanlı UUID'leri birincil anahtar olarak kullanan veritabanlarındaki oluşturma zaman damgalarını doğrulayın
  • Geçiş planlaması — sistemler arasında geçiş yapmadan önce veri dağılımını ve yaşını anlamak için UUID zaman damgalarını analiz edin