🕐
← Rehberlere dön

Unix Zaman Damgaları İnsan Tarafından Okunabilir Tarihlere Nasıl Dönüştürülür

· Etiketler: unix-timestamp, conversion, date-conversion, timezone, epoch-converter

Unix Zaman Damgaları Neden Dönüştürülür?

Unix zaman damgaları makineler için idealdir — tek bir tamsayı kompakt, belirsizlikten uzak ve sıralaması kolaydır. Ancak insanlar için 1785292800 bir takvim tarihine ve saatine dönüştürülene kadar hiçbir anlam ifade etmez. Bir günlük dosyasında hata ayıklıyor, veritabanı kayıtlarını analiz ediyor veya bir API yanıtını okuyor olun, zaman damgalarını hızlıca nasıl dönüştüreceğinizi bilmek temel bir beceridir.

Yöntem 1: Çevrimiçi Unix Zaman Damgası Dönüştürücümüzü Kullanma

En hızlı ve en güvenilir yöntem, özel bir dönüştürme aracı kullanmaktır.

Unix Zaman Damgası Dönüştürücümüz hem saniye hem de milisaniye cinsinden zaman damgalarını kabul eder, çözünürlüğü otomatik olarak algılar ve sonucu aynı anda birden fazla saat diliminde gösterir. Ayrıca ters yönde de çalıştırabilirsiniz — insan tarafından okunabilir bir tarih girin ve karşılık gelen Unix zaman damgasını alın.

Bu yaklaşım, komut satırına dokunmadan hızlı bir kerelik dönüştürmeye ihtiyacınız olduğunda idealdir.

Yöntem 2: Linux Komut Satırını Kullanma (date Komutu)

Bir Linux veya macOS terminaline erişiminiz varsa, date komutu en iyi dostunuzdur.

Zaman Damgasını İnsan Tarafından Okunabilir Bir Tarihe Dönüştürme

# GNU Linux'ta (çoğu dağıtım)
date -d @1785292800

# Özel bir biçim belirtme
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# Çıktı: 2026-07-19 00:00:00

# Saat dilimi ile
TZ="America/New_York" date -d @1785292800
# Çıktı: Sun Jul 19 00:00:00 EDT 2026

macOS'te (BSD date) sözdizimi biraz farklıdır:

# macOS'te
date -r 1785292800

# Özel biçim ile
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"

Bir Tarihi Unix Zaman Damgasına Dönüştürme

# GNU Linux'ta
date -d "2026-07-19 00:00:00" +%s

# macOS'te
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s

Yöntem 3: Manuel Hesaplama

Bunu nadiren elle yapmanız gerekse de, matematiği anlamak sistemin nasıl çalıştığını açıklığa kavuşturur.

Formül

saniye = (yıl - 1970) × 31536000 + (ay ofseti) × 86400 + gün × 86400 + saat × 3600 + dakika × 60 + saniye

Zor kısım artık yılları hesaba katmaktır. Bir yıl, 4'e bölünebiliyorsa artık yıldır, ancak 400'e bölünemeyen yüzyıl yılları hariçtir.

Hızlı Zihinsel Yaklaşımlar

  • 86.400 saniye = 1 gün
  • 604.800 saniye = 1 hafta
  • Yaklaşık 31.536.000 saniye = 1 normal yıl
  • Yaklaşık 31.622.400 saniye = 1 artık yıl

Kaba bir tahmin için, epoch'tan bu yana geçen gün sayısını bulmak üzere timestamp / 86400 hesaplayabilir, ardından bu günleri 1 Ocak 1970'e ekleyebilirsiniz.

Yöntem 4: Programlama Dillerini Kullanma

Her büyük programlama dilinde zaman damgası dönüştürme için yerleşik işlevler bulunur. İşte en yaygın olanları:

JavaScript (Tarayıcı veya Node.js)

// Zaman damgasından tarihe (JavaScript milisaniye kullanır)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// Çıktı: 2026-07-19T00:00:00.000Z

// Tarihten zaman damgasına
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// Çıktı: 1785292800

Python

from datetime import datetime

# Zaman damgasından tarihe
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# Çıktı: 2026-07-19T00:00:00

# Saat dilimi duyarlı (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# Çıktı: 2026-07-19T00:00:00-04:00

# Tarihten zaman damgasına
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)

PHP

<?php
// Zaman damgasından tarihe
echo date("Y-m-d H:i:s", 1785292800);
// Çıktı: 2026-07-19 00:00:00

// Tarihten zaman damgasına
echo strtotime("2026-07-19 00:00:00");
// Çıktı: 1785292800

Yöntem 5: Elektronik Tablo Yazılımını Kullanma

Google E-Tablolar

A1 hücresinin zaman damgasını içerdiği =DATE(1970,1,1) + A1 / 86400 formülünü kullanın. Sonuç hücresini tarih olarak biçimlendirin.

Microsoft Excel

=DATE(1970,1,1) + A1 / 86400

Windows Excel'de şunlara ihtiyacınız olabilir:

=(A1 / 86400) + DATE(1970,1,1)

Dikkat Edilmesi Gereken Sınır Durumları

Saniye ve Milisaniye

Bu en yaygın hatadır. Saniye bekleyen bir işleve milisaniye değeri (örn. 1785292800000) iletirseniz, yaklaşık 56.000 yıl sonrasına ait bir tarih alırsınız.

Nasıl tespit edilir:

  • Sayı 10 haneli ise, muhtemelen saniyedir
  • Sayı 13 haneli ise, muhtemelen milisaniyedir
  • Bazı sistemler ayrıca mikrosaniye (16 hane) veya nanosaniye (19 hane) kullanır

Negatif Zaman Damgaları (1970'ten Önceki Tarihler)

Unix zaman damgaları negatif sayılar kullanarak epoch'tan önceki tarihleri temsil edebilir:

date -d @-126230400
# Çıktı: Tue Dec 31 00:00:00 -1969

Tüm dönüştürme araçları negatif zaman damgalarını doğru şekilde işlemez. Çevrimiçi dönüştürücümüz işler.

Artık Saniyeler

Unix zamanı, tasarım gereği artık saniyeleri yok sayar. Bir Unix zaman damgası, artık saniye eklenmesi sırasında bile asla :59:60 göstermez. Bu, zaman damgasının atomik zamandan küçük (şu anda 27 saniye) ancak büyüyen bir miktarda saptığı anlamına gelir.

Özet

| Yöntem | En Uygun Olduğu Durum | |--------|----------| | Çevrimiçi dönüştürücü (/linux-timestamp) | Hızlı, tek seferlik dönüştürmeler | | date komutu | Terminal kullanıcıları ve betikler | | Manuel hesaplama | Nasıl çalıştığını anlamak için | | Programlama dilleri | Otomasyon ve uygulamalar | | Elektronik tablolar | Veri analizi |

Otomatik saat dilimi algılama ile anında, doğru dönüştürmeler yapmak için Unix Zaman Damgası Dönüştürücümüzü kullanın.