Unix zamanı 0, 1 Ocak 1970 00:00:00 UTC'dir, yani Unix epoch. 1970'in neden seçildiği, negatif Unix zamanları, saniye vs milisaniye hataları ve artık saniyeler.
Unix zamanı 0, 1 Ocak 1970 00:00:00 UTC’dir. Her Unix zamanı, bu andan itibaren geçen saniye sayısıdır. Unix zamanı 1 bir saniye sonrasıdır. Unix zamanı 86400 tam olarak bir gün sonrası, 2 Ocak 1970’tir.
# Terminalde doğrulayın
date -d @0 # Linux
date -r 0 # macOS
# Her ikisi de: Thu Jan 1 00:00:00 UTC 1970
Unix, Bell Labs’ta 1969’da geliştirilmeye başlandı. Orijinal PDP-7 uygulaması farklı bir zaman tabanı kullanıyordu. Unix zamanı formatı 1971-1973 arasında Unix PDP-11’e taşınırken stabilize oldu.
1 Ocak 1970 seçimi ilkesel olmaktan çok pragmatikti:
-86400 Unix zamanı, 31 Aralık 1969 00:00:00 UTC’dir. Daha geriye gidersek, -2208988800, NTP’nin (Ağ Zaman Protokolü) kullandığı epoch olan 1 Ocak 1900’dür.
Unix zamanı saniye cinsinden tanımlanır. Ancak JavaScript’in Date nesnesi (ve tarayıcı API’lerinin çoğu) milisaniye kullanır:
Date.now() // epoch'tan bu yana milisaniye, örn. 1700000000000
Math.floor(Date.now() / 1000) // saniyeye dönüştür: 1700000000
Kanonik hata: bir veritabanından saniye cinsinden bir Unix zamanı okur, doğrudan new Date()’e 1000 ile çarpmadan geçirir ve 2023 yerine Ocak 1970’te bir tarih alırsınız.
1 Ocak 2024 00:00:00 UTC anı:
| Sistem | Temsil | Notlar |
|---|---|---|
| Unix (saniye) | 1704067200 | Standart C/POSIX |
| Unix (milisaniye) | 1704067200000 | JavaScript, Java |
| Windows FILETIME | 133491648000000000 | 1601’den beri 100 ns |
| Excel seri | 45292 | 1900’den beri günler |
UTC periyodik olarak atom saati ile Dünya’nın dönüşünü hizalamak için artık saniyeler ekler. 1972’den beri 27 artık saniye eklenmiştir. Unix zamanı bunu yok sayar: her günü tam olarak 86400 saniye olarak tanımlar. Pratik etkisi, Unix zamanlarının artık saniye içeren tarihler için UTC ile monoton olarak tutarlı olmamasıdır.
Günlük dosyasında veya veritabanında şüpheli bir sayı gördüğünüzde:
~10 basamak: Unix saniye (örn. 1700000000 → Kas 2023)
~13 basamak: Unix milisaniye (örn. 1700000000000 → Kas 2023)
~16 basamak: Unix mikrosaniye
~18 basamak: Windows FILETIME
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.