Unix Zaman Damgası (Epoch) Nedir?
Bir API yanıtında 1752000000 gibi bir sayı gördünüz ve bunun bir tarih olduğunu biliyorsunuz ama nedenini tam bilmiyorsunuz. Bu rehberde epoch'un tam olarak ne olduğunu, neden 1970'ten başladığını, saniye/milisaniye farkını ve Y2038 sorununu örneklerle açıklıyoruz.
Unix zaman damgası (epoch) tam olarak nedir?
Normal bir tarih ("17 Temmuz 2026, 14:30") gün, ay, yıl, saat, dakika gibi birden fazla alandan oluşur ve saat dilimine göre değişir. Epoch ise tek bir sayıdır: 1752762600 gibi ve dünyanın neresinde olursanız olun her zaman aynı anı temsil eder — değişen yalnızca o anın hangi saat diliminde görüntülendiğidir. Bu yüzden epoch, sistemler arası zaman aktarımında "ortak dil" görevi görür.
Epoch neden 1 Ocak 1970'ten başlar?
Farklı sistemlerin kendi epoch'ları da vardır: Windows'un NT dosya sistemi 1 Ocak 1601'i, GPS zamanı 6 Ocak 1980'i referans alır — ama "Unix Epoch" (1970) yazılım dünyasında fiilen standart haline gelmiştir.
Epoch saniye, milisaniye ve mikrosaniye arasındaki fark nedir?
Date.now() fonksiyonu başta olmak üzere birçok web API'sinin varsayılanıdır. Mikrosaniye (16 hane) ve nanosaniye (19 hane), yüksek hassasiyet gerektiren sistem loglarında ve veritabanlarında görülür.Basamak sayısına bakarak hangi birimle karşı karşıya olduğunuzu tahmin edebilirsiniz:
| Birim | Basamak | Örnek değer |
|---|---|---|
| Saniye | 10 hane | 1752762600 |
| Milisaniye | 13 hane | 1752762600000 |
| Mikrosaniye | 16 hane | 1752762600000000 |
| Nanosaniye | 19 hane | 1752762600000000000 |
Kaynak: POSIX zaman standardı; değerler 17 Temmuz 2026 civarına aittir. Basamak sayısı, yaklaşık 2286 yılına kadar bu şekilde kalır.
Negatif epoch ne demektir?
-86400 değeri 31 Aralık 1969 00:00:00 UTC'ye, -2208988800 değeri ise 1 Ocak 1900'e karşılık gelir. Modern diller ve veritabanları negatif epoch'u sorunsuz işler.
Tarihsel doğum tarihleri, arşiv kayıtları veya 1970 öncesi verilerle çalışırken negatif epoch'a ihtiyaç duyulur. Ancak bazı eski sistemler ve sıkı doğrulama yapan formlar negatif değerleri reddedebilir; bu durumda tarihi epoch yerine ISO-8601 string olarak saklamak daha güvenlidir.
Y2038 (2038 yılı) sorunu nedir?
2147483647) sonra sayı taşması yaşayıp tarihi 1901'e sarmasıdır. Modern 64-bit sistemler çok daha büyük sayılar saklayabildiği için bu sorunu yaşamaz.
2^31−1 (2.147.483.647), 32-bit işaretli bir tamsayının alabileceği en büyük değerdir. Bu sınır aşıldığında sayı negatife döner ve tarih 13 Aralık 1901'e "sarar". Sorun gömülü sistemler ve eski veritabanı sürümlerinde hâlâ gündemdedir; 64-bit epoch kullanan modern sunucular ve diller (Python, JavaScript, Rust vb.) etkilenmez.
| Epoch | UTC tarih |
|---|---|
| 0 | 1 Ocak 1970, 00:00:00 |
| 86400 | 2 Ocak 1970, 00:00:00 |
| 1000000000 | 9 Eylül 2001, 01:46:40 |
| 1700000000 | 14 Kasım 2023, 22:13:20 |
| 2147483647 | 19 Ocak 2038, 03:14:07 (Y2038 sınırı) |
Kaynak: BirAraçta epoch çevirme motoru (UTC referanslı). Bu değerleri kendi saat diliminizde görmek için çeviriciyi kullanabilirsiniz.
Bu epoch değerlerini şimdi kendin çevir
Herhangi bir epoch'u saniye, milisaniye, UTC ya da yerel saat diliminde anında oku; ISO-8601 ve RFC 2822 çıktısını gör.
Unix Zaman Damgası Çeviriciyi Aç →Epoch nerelerde kullanılır?
Epoch insan gözüyle okunması zor olsa da makineler için idealdir: sıralanabilir, karşılaştırılabilir, tek bir sayıyla ifade edilir. Bu yüzden birçok temel sistemde varsayılan zaman formatıdır:
- Dosya sistemleri: Dosyanın oluşturulma/değiştirilme zamanı genellikle epoch olarak saklanır.
- Veritabanları:
created_at/updated_atalanları epoch tabanlı zaman türleriyle tutulur. - API'ler: REST/GraphQL yanıtlarında tarih alanları sıkça epoch (saniye/milisaniye) döner.
- Log dosyaları: Sunucu ve uygulama logları olayları epoch damgasıyla sıralar.
- JWT token'ları:
iat/expalanları saniye cinsinden epoch'tur. - Önbellek süre sonu: Bir kaydın ne zaman geçersiz olacağı epoch ile hesaplanır.
Epoch'u programlama dillerinde nasıl üretip okuyacağınızı, kod örnekleriyle "Programlamada Zaman Damgası Kullanımı" rehberinde bulabilirsiniz.
Sık sorulan sorular
Unix zaman damgası (epoch) nedir?
Epoch neden 1970'ten başlıyor?
Milisaniye epoch ile saniye epoch'u nasıl ayırt ederim?
Negatif epoch geçerli mi?
Y2038 sorunundan etkilenir miyim?
İlgili rehberler
Date, tam sayı aritmetiği) hesaplanmıştır. Kaynaklar: IEEE Std 1003.1 (POSIX) · ISO 8601. Son güncelleme: 17 Temmuz 2026. Bilgilendirme amaçlıdır; kritik sistemlerde kendi ortamınızda doğrulama yapın.