Unix Zaman Damgası Nedir?
Unix zaman damgası (epoch time), 1 Ocak 1970, 00:00:00 UTC'den bu yana geçen saniye sayısıdır. Bu an Unix epoch olarak adlandırılır.
1735689600 timestamp'i 1 Ocak 2025, 00:00:00 UTC'yi temsil eder.
Neden 1 Ocak 1970?
Unix, 1960'ların sonunda Bell Labs'de geliştirildi. Mühendisler, dönemin tamsayı tiplerine sığan yakın ve yuvarlak bir tarih olarak 1970'i seçti. 1970'in özel bir önemi yoktur — pratik bir seçimdi ve kalıcı oldu.
Saniye mi Milisaniye mi? En Yaygın Bug
JavaScript milisaniye kullanır (Date.now() ~1.750.000.000.000 döner), çoğu Unix aracı ise saniye kullanır. İkisini karıştırmak en yaygın timestamp hatasıdır.
// JavaScript — milisaniye (13 basamak)
Date.now() // → 1750000000000
// Bash / Python / PHP — saniye (10 basamak)
date +%s // 1750000000
Timezone Tuzağı
Unix timestamp her zaman UTC'dir. PHP'de date(), JavaScript'te timezone belirtmeden format yapmak sunucu saatini kullanır. Üretimde "2025-01-01" nin "2024-12-31" e dönüşmesinin nedeni budur.
2038 Yılı Sorunu
32-bit işaretli tamsayılar en fazla 2.147.483.647 değerini tutabilir. 19 Ocak 2038, 03:14:07 UTC'de 32-bit Unix timestamp taşar ve büyük bir negatif sayıya döner. Modern 64-bit sistemler etkilenmez ancak eski gömülü sistemler ve legacy C kodu risk altındadır.