Unix Timestamp nedir?
A Unix timestamp (Epoch time veya POSIX time olarak da bilinir), 1 Ocak 1970 00:00:00 UTC'den bu yana geçen saniye (veya milisaniye) sayısını gösteren sayısal bir zaman temsilidır. Bu an "Unix Epoch" olarak adlandırılır ve tüm Unix timestamp hesaplamaları için sıfır noktası olarak hizmet eder. Bu sistem, bilgisayar sistemlerinde zamanları standart, saat diliminden bağımsız bir şekilde temsil eder.
Unix timestamp'lar modern bilişimin temelini oluşturur ve programlama, veritabanları, API'ler ve farklı saat dilimleri ve platformlar arasında tutarlı zaman takibi gerektiren sistemlerde yaygın olarak kullanılır. Format basit, kompakt olup saat dilimleri, yaz saati uygulamaları ve tarih formatlama tutarsızlıklarını ortadan kaldırır.
Unix Timestamp'ların Temel Özellikleri
- Evrensel Standart: Aynı timestamp değeri, saat diliminden bağımsız olarak aynı anı temsil eder
- Basit Format: Zamanda saniye veya milisaniye cinsinden tek bir tam sayı
- Kolay Hesaplamalar: Zaman farkları basit aritmetik işlemlerdir
- Kompakt Depolama: Sadece 32 veya 64 bit depolama gerektirir
- Programlamaya Uygun: Tüm büyük programlama dillerinde yerel destek
- Veritabanı İçin Uygun: Zaman tabanlı kayıtları sıralama ve indeksleme için ideal
- Saat Diliminden Bağımsız: YAZ saati ve bölgesel zaman farklarından kaynaklanan kafa karışıklığını ortadan kaldırır
Timestamp Formatlarını Anlamak
Unix timestamp'lar iki ana formatta gelir, her biri farklı hassasiyet gereksinimleri için uygundur:
1. Saniye (10 Basamak)
1970'ten itibaren geçen saniyeleri sayan geleneksel Unix timestamp formatı. Örnek: 1698768000
Temsil eder: 31 Ekim 2023, 12:00:00 UTC
2. Milisaniye (13 Basamak)
1970'ten itibaren milisaniyeleri sayan daha yüksek hassasiyetli format. Örnek: 1698768000000
JavaScript, Node.js ve milisaniye hassasiyeti gerektiren sistemler tarafından kullanılır
Format Karşılaştırması
| Event | Saniye Formatı | Milisaniye Formatı |
|---|---|---|
| Unix Epoch (Başlangıç) | 0 | 0 |
| Y2K (2000-01-01) | 946684800 | 946684800000 |
| Örnek Zaman | 1698768000 | 1698768000000 |
| Y2038 Sorunu Sınırı | 2147483647 | 2147483647000 |
💡 Otomatik Algılama: Dönüştürücümüz, basamak sayısına göre formatı otomatik olarak algılar: 10 digits = seconds, 13 digits = milliseconds. The relationship is simple: milliseconds = seconds × 1000.
Unix Timestamp'ları Nasıl Dönüştürürsünüz
Unix timestamp'lar ile okunabilir tarihler arasında dönüşüm doğru araçlarla basittir. Dönüştürücümüz hem iki yönlü dönüşümleri hem de birden çok çıktı formatını otomatik olarak işler.
Unix Timestamp → İnsan tarafından Okunabilir Tarih
Girdi: 1698768000
ISO 8601: 2023-10-31T12:00:00.000Z
UTC: Tue, 31 Oct 2023 12:00:00 GMT
Yerel Zaman: Saat diliminize göre değişir
Göreli: "X gün önce" veya "X gün içinde"
İnsan tarafından Okunabilir Tarih → Unix Timestamp
Girdi: 31 Ekim 2023, 12:00:00
Saniye: 1698768000
Milisaniye: 1698768000000
Hızlı Ön Ayarlar
Test ve referans için yaygın timestamp'lar:
- Şimdi: Anlık timestamp (gerçek zamanlı güncellenir)
- Unix Epoch: 0 (1 Ocak 1970, 00:00:00 UTC)
- Y2K: 946684800 (1 Ocak 2000, 00:00:00 UTC)
Unix Timestamp'ların Yaygın Kullanım Alanları
Unix timestamp'lar modern yazılım geliştirme ve sistem yöneticiliğinde her yerde kullanılmaktadır:
- Veritabanı Kayıtları: Kayıtların oluşturulma/değiştirilme zamanlarını verimli şekilde saklama
- API Yanıtları: Saat dilimi komplikasyonları olmadan sistemler arasında zaman verisi alışverişi
- Log Dosyaları: Sunucu loglarında, uygulama loglarında ve denetim izlerinde olayları zaman damgalama
- Oturum Yönetimi: Kullanıcı oturum süresi sonlanması ve kimlik doğrulama token'larının takibi
- Zamanlanmış Görevler: cron işleri ve otomatik görevlerin ne zaman çalışacağını tanımlama
- Sürüm Kontrol: Git ve diğer VCS'lerde commit zaman damgalarını kaydetme
- Dosya Sistemleri: Dosya oluşturma, değiştirme ve erişim zamanlarını izleme
- Önbellek Süresi Aşımı: Önbelleğe alınan veriler için TTL (time-to-live) ayarlama
- Veri Analizi: Zaman serisi veri işleme ve zamansal analiz
- JavaScript/Node.js: Date.now() milisaniye cinsinden Unix timestamp döndürür
Y2038 Problemini Anlamak
⚠️ Önemli Not: Y2038 problemi (Unix Millennium Bug olarak da adlandırılır), Unix timestamp'ları işaretli tam sayılar olarak saklayan 32-bit sistemleri etkiler. 19 Ocak 2038, 03:14:07 UTC'de 32-bit timestamp'lar taşar ve negatif değerlere sarılarak potansiyel sistem hatalarına yol açabilir.
32-bit işaretli tamsayının maksimum değeri 2147483647, bu da taşmanın hemen öncesindeki son anı temsil eder. Modern 64-bit sistemler bu sınırlamadan etkilenmez ve gelecekte çok uzak tarihleri temsil edebilir (292 milyar yıla kadar).
Çözüm: Çoğu modern sistem 64-bit timestamp'lara geçti, ancak gömülü cihazlar ve eski sistemler hâlâ savunmasız olabilir. Yeni projelerde uzun ömürlülük için her zaman 64-bit timestamp kullanın.
Sıkça Sorulan Sorular
Unix Epoch nedir?
Unix Epoch, Unix timestamp hesaplamalarının başlangıç noktasıdır: 1 Ocak 1970, 00:00:00 UTC. Bu tarih Unix işletim sistemi geliştirildiğinde seçilmiş ve timestamp temsilinde evrensel standart haline gelmiştir. 0 değeri bu tam anı temsil eder.
Unix timestamp'ı JavaScript'te nasıl tarihe dönüştürürüm?
JavaScript'te kullanın new Date(timestamp * 1000) saniyeler için veya new Date(timestamp) milisaniyeler için. Örnek: new Date(1698768000 * 1000) bir Date objesi oluşturur. JavaScript'in Date.now() mevcut timestamp'ı milisaniye cinsinden döndürür.
Saniye ve milisaniye formatı arasındaki fark nedir?
Seconds format (10 digits) is the traditional Unix timestamp used by most Unix/Linux systems and languages like Python and PHP. Milliseconds format (13 digits) provides higher precision and is used by JavaScript, Node.js, and Java. To convert: milliseconds = seconds × 1000.
Unix zaman damgaları 1970 öncesi tarihleri temsil edebilir mi?
Evet! Negatif Unix timestamp'lar Unix Epoch öncesi tarihleri temsil eder (1 Ocak 1970). Örneğin, -86400 31 Aralık 1969, 00:00:00 UTC'yi temsil eder. Ancak bazı sistemler ve diller negatif timestamp'larla ilgili sınırlamalara sahip olabilir, bu yüzden belirli uygulamanızı test edin.
Y2038 problemi nedir ve endişelenmeli miyim?
Y2038 problemi, timestamp'ları 32-bit olarak saklayan sistemleri etkiler; 19 Ocak 2038'de timestamp'lar taşacaktır. Modern 64-bit sistemler bundan etkilenmez ve yıl 292 milyara kadar tarihleri temsil edebilir. Yeni yazılımlar geliştiriyorsanız her zaman 64-bit timestamp kullanın. Eski sistemlerin 2038 öncesinde güncellenmesi gerekebilir.
Unix timestamp'lar ne kadar hassastır?
Saniye formatındaki Unix timestamp'lar 1 saniyeye kadar hassastır. Milisaniye formatı 0,001 saniye hassasiyeti sağlar. Daha yüksek hassasiyet için bazı sistemler mikro saniye (16 basamak) veya nano saniye (19 basamak) kullanır, ancak bunlar daha az yaygındır. Hassasiyet, sistem saat senkronizasyonunuza bağlıdır.
Unix timestamp leap second (artık saniye) hesabına dahil eder mi?
Hayır, Unix timestamp'lar artık saniyeleri dikkate almaz. Her günün tam 86.400 saniye olduğu varsayılır; bu, hesaplamaları basitleştirir ancak Unix zamanının atomik zaman (TAI) ile tam olarak senkronize olmadığı anlamına gelir. Çoğu uygulama için bu fark önemsizdir ve basitleştirilmiş sistem tercih edilir.
Unix timestamp'ları tüm tarih/zaman ihtiyaçları için kullanabilir miyim?
Unix timestamp'lar zaman verilerini saklamak ve iletmek için mükemmeldir, ancak kullanıcıya gösterim için bunları yerel zaman formatlarına dönüştürmelisiniz. Hesaplamalar, sıralama ve veri depolama için idealdir; kullanıcı arayüzleri ve loglar için ISO 8601 gibi insan tarafından okunabilir formatlar daha uygundur.