Unix Zaman Damgası Dönüştürücü: Epoch’tan Tarihe, Ücretsiz

Bir Unix zaman damgası dönüştürücü bir müşteri projesinde bana saatler kazandırabilirdi. 13 basamaklı bir sayı giriş akışını bozmuştu, çünkü JWT exp alanları milisaniye cinsindeydi ama sunucu saniye bekliyordu. Herhangi bir zaman damgasını buraya yapıştırın ve UTC, GMT veya yerel saatinizde net bir tarih olarak okuyun.

Unix Zaman Damgası Dönüştürücü

Saniye, milisaniye, mikrosaniye veya nanosaniye cinsinden epoch zamanını okunabilir tarihe çevirin ya da tersini yapın.

Şu anki Unix zamanı Kopyalamak için dokunun

Sonucu görmek için yukarıya bir zaman damgası veya tarih girin

Hızlı başvuru: önemli zaman damgaları

Dönüştürücüyü doldurmak için bir satıra dokunun

Zaman damgasıTarih (UTC)An
01970-01-01 00:00:00Unix epoch (zaman 0)
9466848002000-01-01 00:00:002000 yılı
17000000002023-11-14 22:13:201,7 milyar saniye
17771184002026-04-25 12:00:00Rehberdeki örnek
18000000002027-01-15 08:00:001,8 milyar saniye
21474836472038-01-19 03:14:0732 bit sınırı (2038 yılı)

Paylaş veya kopyala

Araç 10 ve 13 basamaklı zaman damgalarını, ayrıca mikrosaniye ve nanosaniye değerlerini okur. Bu, backend dillerinden, JavaScript’ten, Java’dan ve mesaj kuyruklarından gelen POSIX çıktısını kapsar. Ben neredeyse her gün veritabanı sütunlarını, log satırlarını, API yanıtlarını ve analitik olaylarını kontrol etmek için kullanıyorum.

Her değer 1970-01-01 00:00:00 UTC’den itibaren sayılır; takvim ya da saat dilimi işin içine girmez. Aşağıda epoch zamanının sade bir açıklaması, yaygın programlama dilleri için dönüşüm sözdizimi ve web ya da mobil uygulamalardaki zamanlayıcı tetikleyicileri ve önbellek süresi başlıkları için hızlı bir başvuru bulacaksınız.

Unix zaman damgası dönüştürücü 1777118400 değerini 25 Nisan 2026, 12:00 UTC tarihine çeviriyor

Unix Zaman Damgası (Epoch Zamanı) Nedir?

Unix zaman damgasının saat dilimi yoktur. Çoğu kişi olduğunu sanır ve bu varsayım pek çok hataya yol açar. Değer, Unix epoch’undan bu yana geçen saniyelerin toplamıdır; Tokyo’daki bir sunucuda da Lizbon’daki bir dizüstünde de aynı sayıyı gösterir.

Başlangıç noktası 1 Ocak 1970, gece yarısı GMT’dir. ISO 8601 biçiminde 1970-01-01T00:00:00Z olarak yazılır. Unix zamanı 0 tam bu ana denk gelir; POSIX zamanı ya da kısaca epoch adlarını da duyarsınız.

İlk başlarda beni şaşırtan bir ayrıntı var: Unix zamanı artık saniyeleri hesaba katmaz. Her UTC günü tam 86.400 saniye sayılır. Atom saatlerinden biraz sapsa da, hesap sade kalır.

Basamak sayısı hassasiyeti gösterir:

  • 10 basamak saniye demektir
  • 13 basamak milisaniye demektir
  • 16 basamak mikrosaniye demektir
  • 19 basamak nanosaniye demektir

Ben her şeyden önce basamakları sayarım. Bu, herhangi bir araçtan daha çok zaman kazandırır.

Bilgisayarlar zamanı bu şekilde saklar, çünkü bir tamsayıyı sıralamak, karşılaştırmak ve takip etmek kolaydır. Veritabanları, API’ler ve zamanlayıcılar zaman aralıklarını düz olarak tutar. Dağıtık uygulamalar, kod ister sunucuda ister istemci tarafında çalışsın, hangi saatin doğru olduğu tartışmasına girmez.

Eski tasarım kararları hâlâ sorun çıkarır. Birçok sistem zamanı işaretli 32 bit tam sayı olarak sakladı ve bu değer 19 Ocak 2038’de tükenir. Buna 2038 yılı problemi denir ve yıllar sonrasının tarihini hesaplayan her uygulamayı şimdiden etkiler.

Unix Zaman Damgası Tarihe Nasıl Çevrilir?

Hatalı dönüşümlerin çoğu birim konusunda yanlış tahminle başlar. Bu yüzden dönüştürücü yapıştırdığınız değerin uzunluğuna bakar. 10 basamaklı değer saniye, 13 basamaklı değer milisaniye olarak okunur; gerekirse birimi elle değiştirebilirsiniz.

  1. Değeri yapıştırın. Bir JWT exp değeri, veritabanı satırından bir sayı ya da log sorgusundan kopyaladığınız bir değer olabilir.
  2. Görüntüleme dilimini seçin. UTC’yi, yerel saatinizi veya başka bir saat dilimini seçin. Bu yalnızca tarihin nasıl göründüğünü değiştirir, zaman damgasını değil.
  3. Sonucu okuyun. ISO 8601 metnini, yerel saati ve “3 saat önce” ya da “2 gün sonra” gibi göreli bir ifadeyi görürsünüz. Ben hata kayıtlarına ISO sürümünü yapıştırırım, çünkü saat farkı değerle birlikte kalır.
  4. Ters yönde çevirin. Tarih ve saat alanlarını doldurun ya da bir tarih metni yapıştırın; araç size ihtiyacınız olan biçimde Unix zamanını verir.

Saniye ve Milisaniye Cinsinden Unix Zaman Damgası

Düzelttiğim en kötü zaman damgası hatası, bir önbelleğin süresini yaklaşık 54.000 yıl ileriye atmıştı. Biri saniye bekleyen bir fonksiyona milisaniye göndermişti. Haftalarca kimse fark etmedi.

Bu iki değer aynı anı gösterir, 25 Nisan 2026, 12:00 UTC:

  • 1777118400 (10 basamak, saniye)
  • 1777118400000 (13 basamak, milisaniye)

Değişen tek şey birimdir. POSIX araçları ve çoğu backend dili varsayılan olarak saniye kullanır. JavaScript ve Java milisaniye kullanır. Mesaj kuyrukları değişkenlik gösterir; bazıları mikrosaniye, hatta nanosaniye kaydeder.

Unix Zaman Damgaları Neden UTC Olarak Saklanır?

Çalıştığım her projede zamanın UTC olarak saklanmasını savunurum. Saniye veya milisaniye değerini UTC’ye göre kaydedin, yerel saate yalnızca bir kişinin görmesi gerektiğinde çevirin.

Sebebi pratik. Cihaz saati yanlış olabilir ve yaz saati kuralları ülkeden ülkeye değişir. Yerel saati saklayan sistemlerde her yıl bir saat iki kez kaydedilir ve raporlar tutulmaz hale gelir.

Sayı yerine metin gerektiğinde ISO 8601 kullanın. Sondaki Z, +00:00 anlamına gelir. +02:00 gibi bir fark, UTC’den iki saat ileride olmak demektir. Yani 2026-04-25T12:00:00Z ile 2026-04-25T14:00:00+02:00 tam olarak aynı anı anlatır.

ISO metinlerini karşılaştırmadan önce hepsini aynı dile çevirin. Farklı saat farkları içeren metinler yanlış sırayla dizilir.

UTC ve Yerel Saat: Aynı An, Farklı Görünüm

2026-04-25T12:00:00Z ile 2026-04-25T14:00:00+02:00 aynı andır. +02:00 farkı yalnızca saatin gösterdiği değeri değiştirir.

Kuralım basit: anları UTC olarak saklayın, insanlara yerel saati gösterin. İkisini aynı veritabanı sütununda karıştırmak, raporların bir saati iki kez saymasının en hızlı yoludur.

Geliştiriciler Epoch Dönüştürücüyü Ne Zaman Kullanır?

Zaman damgasını dönüştürmek heyecan verici bir iş değil ama hata ayıklama saatlerimin büyük bir kısmını alıyor. En sık şu durumlarda karşıma çıkıyor:

  • Log takibi: iki servisin log satırlarını ikisini de UTC’ye çevirerek eşleştirin.
  • Cron hata ayıklama: tetikleyicilerin yerel saatte mi UTC’de mi çalıştığını kontrol edin. “Kaçan” işlerin çoğu bu farktan kaynaklanır.
  • Veritabanı sorguları: saniye olarak saklanan sütunları filtrelemeden önce tarihe çevirin.
  • API yanıt kontrolü: süresi dolmuş tokenleri bulmak için API yanıtlarını ve JWT exp alanlarını çözün.
  • Hassas karşılaştırmalar: analitik olayları milisaniye düzeyinde hizalayın.
  • Önbellek başlıkları: önbelleğin ne zaman sona erdiğini doğrulayın ve süreyi göreli zaman olarak okuyun.

Epoch Zamanı Saniye Başvuru Tablosu

TTL, çerez süresi veya token geçerlilik süresi belirlerken bu tabloyu yakında tutun. Saat değerlerini ondalıktan dakikaya çevirmeniz gerekiyorsa, ondalık saat çevirme aracımızı kullanabilirsiniz.

SüreSaniyeNot
1 saat3.600Tam
1 gün86.400Yaz saati kaymalarını yok sayar
1 hafta604.8007 × 86.400
1 ay2.629.743Ortalama 30,44 gün
1 yıl31.556.926Tropik yıl, 365,24 gün
1 yıl (Jülyen)31.557.600365,25 gün

Ayların ve yılların sabit bir uzunluğu yoktur. Fatura döngüleri için 2.629.743 değerini koda sabit yazmayın. Bunun yerine dilinizin takvim fonksiyonlarını kullanın.

2038 Yılı Problemi Nedir?

Bu uzak bir sorun değil. 2038 sonrasında geçerli kredi ödeme planları, sigorta süreleri veya sertifikalar üretiyorsanız, bu tarihler sınırı bugünden aşıyor.

İşaretli 32 bit tam sayı en fazla 2.147.483.647 değerine ulaşır. Bu değer 19 Ocak 2038, 03:14:07 UTC’ye denk gelir. Bir saniye sonra sayı taşar ve aralık 1901’e geri döner.

64 bit sistemler bu sorunu çözer. Modern diller ve çoğu veritabanı zamanı artık 64 bit tam sayı olarak saklıyor; bu da yüz milyarlarca yıla yeter. Yeni bir standarda gerek yok, sadece daha fazla alan gerekiyor.

Asıl risk eski uygulamalarda, gömülü yazılımlarda ve hâlâ 2038-01-19’da duran eski MySQL TIMESTAMP sütunlarında. Ben sorunları erkenden yakalamak için 2040 yılına ait bir test tarihini tüm sistemden geçiririm.

15 Programlama Dilinde Unix Zaman Damgası Kod Örnekleri

Her dil epoch zamanını biraz farklı ele alır ve saniye ile milisaniye tuzağı burada da karşınıza çıkar. Tüm örnekler 1800000000 saniyeyi kullanır; bu değer 15 Ocak 2027, 08:00 UTC’ye eşittir, böylece çıktınızı kontrol edebilirsiniz.

DilŞu Anki Epoch ZamanıEpoch’tan Okunabilir Tarihe
Pythonimport time; time.time()time.ctime(1800000000)
PHPtime()date(‘Y-m-d H:i:s’, 1800000000)
JavaScriptMath.floor(new Date().getTime() / 1000)new Date(1800000000 * 1000).toLocaleString()
JavaSystem.currentTimeMillis() / 1000new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format(new java.util.Date(1800000000L * 1000))
RubyTime.now.to_iTime.at(1800000000)
Gotime.Now().Unix()time.Unix(1800000000, 0)
C#DateTimeOffset.Now.ToUnixTimeSeconds()DateTimeOffset.FromUnixTimeSeconds(1800000000).LocalDateTime
PostgreSQLSELECT EXTRACT(EPOCH FROM now());SELECT TO_TIMESTAMP(1800000000);
MySQLSELECT UNIX_TIMESTAMP(NOW());SELECT FROM_UNIXTIME(1800000000);
SQL ServerSELECT DATEDIFF(SECOND, ‘1970-01-01’, GETUTCDATE());SELECT DATEADD(SECOND, 1800000000, ‘1970-01-01’);
SQLiteSELECT unixepoch();SELECT datetime(1800000000, ‘unixepoch’, ‘localtime’);
Linux Shelldate +%sdate -d @1800000000
macOSdate +%sdate -j -r 1800000000
PowerShell[DateTimeOffset]:: Now.ToUnixTimeSeconds()[DateTimeOffset]:: FromUnixTimeSeconds(1800000000).LocalDateTime
Excel=(NOW()-25569)*86400=A1/86400+25569 (hücreyi tarih olarak biçimlendirin)

Gerçek projelerden birkaç not:

  • JavaScript: Date metotları milisaniye döndürür; API saniye istiyorsa 1000’e bölün ve Math.floor kullanın. Ayrıntılar için MDN Date başvurusuna bakabilirsiniz.
  • Eski .NET sürümlerinde C#: yardımcı metotlar olmadığı için new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(1800000000) kullanın.
  • Python: datetime.fromtimestamp() bir saat dilimi vermezseniz yerel saati döndürür. Resmi datetime belgeleri tz parametresini açıklar.
  • Excel: tarihler 1900’den itibaren gün olarak sayılır. 86.400’e bölün ve 1 Ocak 1970’in seri numarası olan 25.569’u ekleyin. NOW() UTC’yi değil, bilgisayarınızın yerel saatini kullanır. Türkçe Excel’de bu fonksiyonun adı ŞİMDİ()’dir.
  • SQLite: unixepoch() için 3.38 veya daha yeni bir sürüm gerekir.

Unix Zaman Damgası mı ISO 8601 mi: Hangi Biçim Saklanmalı?

Unix zaman damgası her zaman doğru seçim değildir. Ben değeri kimin okuyacağına göre karar veririm: bir makine, bir insan ya da ikisi birden.

BiçimÖrnekEn Uygun Kullanım
Unix saniye1777118400Backend logları, JWT exp, POSIX time(), Redis TTL’leri
Unix milisaniye1777118400000JavaScript Date.now(), Java System.currentTimeMillis()
ISO 86012026-04-25T12:00:00ZREST API’ler, JSON, GraphQL, log dosyaları
Saat farklı ISO 86012026-04-25T14:00:00+02:00Kullanıcıya dönük planlama, takvim davetleri
RFC 2822Sat, 25 Apr 2026 12:00:00 GMTE-posta başlıkları, HTTP Date, Last-Modified
Yalnızca tarih2026-04-25Doğum günleri, tatiller

Yalnızca tarih içeren değerler epoch hesabına uygun değildir. Bir doğum gününü UTC gece yarısı olarak saklarsanız, kullanıcılarınızın yarısına bir gün erken görünür. İki tarih arasındaki gün farkı gerekiyorsa, tarih hesaplama aracımız daha uygun.

1000 katı, klasik hatadır. 1700000000 değerini milisaniye olarak okursanız, Ocak 1970’e düşersiniz. Saniye olarak okursanız, kasım 2023 olur. Dönüştürülen tarih on yıllarca kaymışsa, önce birimi kontrol edin.

Saat farkı olmayan bir tarih metnini ayrıştırmak, sistemin sunucunun yerel dilimine göre tahmin yapmasına yol açar. Biçimlendirilmiş tarihlerin yaz saati geçişlerinde kaymasının sebebi budur. UTC’yi tek doğruluk kaynağı olarak tutun.

Tekrarlayan etkinlikler istisnadır. Haftalık saat 09:00 toplantısı kendi bölgesinin yaz saati kurallarına uymak zorundadır; bu yüzden yerel kuralı UTC değeriyle birlikte saklarım.

Token süresi ve tek kullanımlık şifre gibi güvenlik süreleri için cihaza değil, her zaman sunucu saatine güvenin. Ben 30 ile 60 saniyelik bir sapma payı bırakırım, çünkü telefon saatleri sanıldığından fazla kayar.

API yanıtındaki Unix zaman damgası nasıl okunur?

Bir endpointin şu JSON’u döndürdüğünü düşünün:

json

{ “id”: 42, “createdAt”: 1777118400, “expiresAt”: 1777204800 }

İki değer de 10 basamaklı, yani Unix saniyeleri. Kayıt 25 Nisan 2026, 12:00 UTC’de oluşturulmuş ve tam 24 saat sonra sona eriyor. Bitiş zamanı geçmişse, kayıt geçersizdir. Gelecekte hâlâ geçerlidir.

JavaScript ağırlıklı backendler genellikle milisaniye gönderir. Asla varsaymayın. Herhangi bir değeri saniye olarak kabul etmeden önce API belgelerini kontrol edin.

Sıkça Sorulan Sorular

Dönüştürücü saniye ve milisaniyeyi destekliyor mu?

Evet. Saniye cinsinden 10 basamaklı veya milisaniye cinsinden 13 basamaklı bir zaman damgası yapıştırın; araç birimi kendisi algılar. Ters yönde çevirmek için yıl, ay, gün, saat, dakika ve saniyeyi girin.

Hangi Sonuçları Kopyalayabilirim?

Her sonucu tek tıkla kopyalayabilirsiniz: saniye cinsinden zaman damgası, milisaniye değeri, ISO 8601 metni, UTC, yerel saat ve göreli zaman.

Dönüştürücü Hangi Saat Dilimini Gösteriyor?

UTC’yi gösterir ve yerel saatinizi tarayıcınızdan okur. Sistem ayarlarınızı değiştirmeden görünümü başka bir dile geçirebilirsiniz.

Epoch Zamanı Basitçe Nedir?

Epoch zamanı, 1970-01-01 00:00:00 UTC’den bu yana geçen saniye veya milisaniyeleri sayan tek bir sayıdır. Nerede olursanız olun, tek bir kesin anı gösterir.

Neden Bazı Zaman Damgaları 10, Bazıları 13 Basamaklı?

10 basamaklı bir zaman damgası saniyeyi, 13 basamaklı olan milisaniyeyi sayar. JavaScript’teki Date.now() milisaniye döndürürken, Python, PHP ve Go ile yazılmış çoğu backend saniye kullanır.

UTC ne demek?

UTC, Koordineli Evrensel Zaman anlamına gelir ve küresel referans saatidir. Yaz saatiyle hiç değişmez; bu yüzden veritabanları, API’ler ve loglar ona güvenir.

JavaScript Neden milisaniye Kullanıyor?

JavaScript, tarayıcıda daha hassas ölçüm için Date nesnesini milisaniye cinsinden kurdu. Date.now() ve new Date().getTime() milisaniye döndürür; diğer dillerin çoğu ise saniye kullanır. 1000 katı hatalarının çoğu bu farktan doğar.

Unix Zaman Damgasını Kodda Tarihe Nasıl Çeviririm?

JavaScript’te saniyeyi 1000 ile çarpıp sonucu new Date()’e verin. Python’da datetime.fromtimestamp() kullanın. Ya da değeri bu dönüştürücüye yapıştırıp sonucu anında görün.

Unix Zaman Damgaları Taşar mı?

İşaretli 32 bit zaman damgaları 2038-01-19’da taşar; buna 2038 yılı problemi denir. Modern diller ve veritabanları 64 bit tam sayı kullanır ve bu sınırı yüz milyarlarca yıl ileriye taşır.

Zaman Damgasını Yapıştırdıktan Sonra Dönüştürücü Neyi Gösterir?

Tarih ve saati yerel diliminizde, UTC’de ve seçtiğiniz başka bir dilimde görürsünüz; ayrıca saniye, milisaniye ve ISO 8601 değerleri de listelenir.

Normal bir tarihi Unix zaman damgasına çevirebilir miyim?

Evet. “Tarih ve saatten Unix’e” sekmesini açın, tarihi ve saati girin; zaman damgasını hem saniye hem milisaniye olarak alırsınız.

Unix Zaman Damgası Saat Dilimine Göre Değişir mi?

Hayır. Sayı her yerde aynıdır. Yalnızca gösterilen tarih ve saat baktığınız dile göre değişir.