70">
Temel kavram Yayın: 17 Temmuz 2026 7 dk okuma

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.

Kısa cevap Unix zaman damgası (epoch), 1 Ocak 1970 00:00:00 UTC'den itibaren geçen saniye sayısıdır. Zaman dilimi ve takvim karmaşasından bağımsız, tek bir tam sayıyla evrensel zamanı ifade eder. Saniye (10 hane), milisaniye (13 hane), mikrosaniye (16 hane) ve nanosaniye (19 hane) hassasiyetinde kullanılabilir; işletim sistemleri, veritabanları ve API'lerin ortak zaman dilidir.

Unix zaman damgası (epoch) tam olarak nedir?

Kısa cevap Unix zaman damgası, belirli bir referans anından (1 Ocak 1970 00:00:00 UTC) itibaren geçen saniye sayısını gösteren tek bir tam sayıdır. Bu referans ana "Unix Epoch" denir; sayının kendisine de günlük dilde kısaca "epoch" ya da "timestamp" denir.

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 (sıfır noktası) nedir? Bir sayma sisteminin başlangıç referans noktasıdır. Unix'te bu nokta 1 Ocak 1970 00:00:00 UTC'dir ve "Unix Epoch" adını alır; sonrasına pozitif, öncesine negatif epoch değerleri karşılık gelir.

Epoch neden 1 Ocak 1970'ten başlar?

Kısa cevap 1970, Unix işletim sisteminin Bell Labs'te geliştirildiği dönemde (1969-1971) pratik ve yuvarlak bir başlangıç noktası olarak seçildi. O tarihten önceki tarihlerle ciddi bir uyumluluk ihtiyacı yoktu; yeni bir on yılın başlangıcı, hesaplamayı basitleştiren doğal bir sıfır noktası sundu.

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?

Kısa cevap Saniye epoch (10 haneli, ör. 1752000000) klasik Unix birimidir. Milisaniye epoch (13 haneli) saniyenin 1000 katıdır ve JavaScript'in 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:

Epoch hassasiyeti — basamak sayısına göre tanıma tablosu
BirimBasamakÖrnek değer
Saniye10 hane1752762600
Milisaniye13 hane1752762600000
Mikrosaniye16 hane1752762600000000
Nanosaniye19 hane1752762600000000000

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.

Sık yapılan hata Milisaniye epoch'u saniye sanıp çevirmeye çalışmak, tarihi ~46.000 yıl ileriye fırlatır (13 haneli sayı saniye kabul edilirse). Bu, "epoch çeviri sonucum saçma bir tarih verdi" şikayetlerinin en yaygın nedenidir — bu araçtaki otomatik hassasiyet algılama tam olarak bunu önlemek için var.

Negatif epoch ne demektir?

Kısa cevap Negatif epoch, 1 Ocak 1970'ten önceki bir tarihi ifade eder. Örneğin -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?

Kısa cevap Y2038 sorunu, epoch değerini 32-bit işaretli tam sayıyla (int32) saklayan eski sistemlerin, 19 Ocak 2038 03:14:07 UTC'den (epoch 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 kilometre taşları
EpochUTC tarih
01 Ocak 1970, 00:00:00
864002 Ocak 1970, 00:00:00
10000000009 Eylül 2001, 01:46:40
170000000014 Kasım 2023, 22:13:20
214748364719 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_at alanları 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/exp alanları 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?
1 Ocak 1970 00:00:00 UTC'den itibaren geçen saniye sayısıdır. Zaman dilimi ve takvim farklılıklarından bağımsız, tek bir tam sayıyla evrensel zamanı ifade eder.
Epoch neden 1970'ten başlıyor?
Unix işletim sisteminin geliştirildiği dönemde (1969-1971) pratik ve yuvarlak bir başlangıç noktası olarak seçildi; o tarihten önceki uyumluluk ihtiyacı yoktu.
Milisaniye epoch ile saniye epoch'u nasıl ayırt ederim?
Basamak sayısına bakın: 10 haneli değer saniye, 13 haneli değer milisaniyedir. 16 hane mikrosaniye, 19 hane nanosaniyeye işaret eder.
Negatif epoch geçerli mi?
Evet, 1970 öncesi tarihleri ifade eder. Modern diller sorunsuz işler ama bazı eski sistemler ve sıkı form doğrulamaları reddedebilir.
Y2038 sorunundan etkilenir miyim?
64-bit modern sistemler (güncel Python, JS, Rust, çoğu bulut sunucusu) etkilenmez. Risk, eski 32-bit gömülü sistemler ve bazı eski veritabanı sürümlerindedir.

İlgili rehberler

Metodoloji & kaynaklar. Değerler POSIX zaman standardı ve UTC referansına göre, BirAraçta'nın açık epoch çevirme motoruyla (tarayıcı JavaScript 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.
Kaynak: POSIX zaman standardı · ISO 8601 · Güncelleme: 17 Temmuz 2026
Bilgilendirme amaçlıdır. · BirAraçta