Ana Sayfa/Blog/Unix Timestamp ve Tarih Formatları Rehberi

Unix Timestamp ve Tarih Formatları Rehberi

Bilgisayar sistemlerinde tarih ve saat yönetimi, görünürdeki basitliğine rağmen karmaşık bir konudur. Zaman dilimleri, yaz saati uygulamaları, farklı takvim sistemleri ve biçim standartları bu karmaşıklığın temel nedenleridir. Tüm bu sorunlara evrensel bir çözüm olarak Unix timestamp (epoch time) geliştirilmiştir.

Unix Timestamp (Epoch) Nedir?

Unix timestamp, 1 Ocak 1970 00:00:00 UTC tarihinden itibaren geçen saniye sayısını temsil eden bir tam sayıdır. Bu başlangıç anına "Unix Epoch" denir.

# Örnekler
0          → 1 Ocak 1970 00:00:00 UTC
1000000000 → 9 Eylül 2001 01:46:40 UTC
1700000000 → 14 Kasım 2023 22:13:20 UTC
1735689600 → 1 Ocak 2025 00:00:00 UTC

Unix timestamp'in avantajları:

Milisaniye vs Saniye

JavaScript Date.now() milisaniye cinsinden, çoğu Unix sistemi ise saniye cinsinden timestamp döndürür:

// JavaScript — milisaniye
Date.now()        // 1700000000000 (13 haneli)

// Unix/Python — saniye
import time
time.time()       // 1700000000.0 (10 haneli)

// Dönüşüm
saniye = milisaniye / 1000
milisaniye = saniye * 1000

ISO 8601 Formatı

Uluslararası standart tarih-saat formatıdır. API'lerde ve veri alışverişinde en çok tercih edilen biçimdir:

# Yalnızca tarih
2025-11-05

# Tarih ve saat (UTC)
2025-11-05T14:30:00Z

# Tarih ve saat (zaman dilimi ile)
2025-11-05T17:30:00+03:00

# Tarih, saat ve milisaniye
2025-11-05T14:30:00.123Z

ISO 8601'in önemli özellikleri:

RFC 2822 Formatı

E-posta başlıklarında ve bazı HTTP başlıklarında kullanılan formattır:

Wed, 05 Nov 2025 14:30:00 +0000
Fri, 28 Nov 2025 09:15:30 +0300

İnsan tarafından okunabilir olması avantajdır, ancak dile bağımlı kısaltmalar (Wed, Nov) içerdiği için uluslararası projelerde ISO 8601 tercih edilir.

Formatlar Arası Dönüşüm

// JavaScript'te dönüşüm örnekleri
const timestamp = 1700000000;
const date = new Date(timestamp * 1000);

// ISO 8601
date.toISOString()
// "2023-11-14T22:13:20.000Z"

// Yerel format (Türkçe)
date.toLocaleDateString('tr-TR', {
  year: 'numeric', month: 'long', day: 'numeric'
})
// "14 Kasım 2023"

// Unix timestamp'e geri dönüş
Math.floor(date.getTime() / 1000)
// 1700000000

Zaman Dilimi Yönetimi

Zaman dilimleri, tarih-saat yönetiminin en zorlu kısmıdır:

// Zaman dilimi dönüşümü
const date = new Date('2025-11-05T12:00:00Z');

// Türkiye saati (UTC+3)
date.toLocaleString('tr-TR', { timeZone: 'Europe/Istanbul' })
// "5.11.2025 15:00:00"

// New York saati (UTC-5 / UTC-4 yaz saati)
date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// "11/5/2025, 7:00:00 AM"

Y2K38 Sorunu

32-bit sistemlerde Unix timestamp, işaretli (signed) 32-bit tam sayı olarak saklanır. Bu veri tipinin maksimum değeri 2.147.483.647'dir ve bu değer 19 Ocak 2038 03:14:07 UTC tarihine karşılık gelir. Bu andan sonra sayaç taşar ve negatif değere döner — bu da 1901 yılına karşılık gelir.

Çözüm olarak modern sistemler 64-bit timestamp kullanır. 64-bit timestamp, evrenin tahmini ömründen çok daha ileriye kadar tarihleri temsil edebilir. Ancak eski gömülü sistemler, veritabanları ve yazılımlar hâlâ risk altında olabilir.

Tarih ve timestamp dönüşümlerini hızlıca yapmak mı istiyorsunuz? SiteScripti'nin Epoch Converter ve Tarih Dönüştürücü araçlarıyla Unix timestamp, ISO 8601 ve diğer formatlar arasında kolayca dönüşüm yapın.

Bu konuyla ilgili araçlarımızı da deneyin: JSON Formatter, Regex Test Aracı, Teknoloji Dedektörü

← Tüm Yazılar