ByteCompress

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

Unix zaman damgalarını (Unix Epoch'tan itibaren geçen saniye veya milisaniye) insan tarafından okunabilir tarih-saat dizelerine dönüştürün ve tarihleri tekrar Unix zaman damgalarına çevirin. UTC ve yerel zaman dilimlerini destekler.

0 chars
FreeClient-sideNo signup

Unix zamanı, 1 Ocak 1970 00:00:00 UTC'den itibaren saymaya başladı - Unix Epoch. Her Unix zaman damgası, o andan itibaren geçen saniye (veya birçok modern sistemde milisaniye) sayısını ifade eder. Zaman damgaları, zaman diliminden bağımsız, tam sayılar olarak sıralanabilir ve aritmetik olarak karşılaştırması kolay olduğu için programlama, veritabanları ve API'lerde yaygın olarak kullanılır. 1711843200'ü ham bir sayı olarak okumak size hiçbir şey söylemez. Bu dönüştürücü, onu anında 2024-03-31T00:00:00.000Z'ye çevirir, ISO 8601 kullanarak - uluslararası tarih standardı. Tüm dönüşümler tarayıcınızda yerel olarak çalışır.

Bu Aracı Nasıl Kullanılır

  1. Zaman Damgasını Tarihe Dönüştür: Saniye veya milisaniye cinsinden bir Unix zaman damgası girin - araç, tarihi UTC ve yerel zaman dilenizde gösterir.
  2. Tarihi Zaman Damgasına Dönüştür: Tarih seçici kullanarak bir tarih ve saat girin, ardından elde edilen Unix zaman damgasını saniye ve milisaniye cinsinden kopyalayın.
  3. Referans için mevcut zaman damgasını doldurmak için Şimdi butonuna tıklayın.
  4. Tarihleri ISO 8601, RFC 2822 veya insan tarafından okunabilir formatta görüntülemek için format seçicisini kullanın.

Unix Zaman Damgalarını Anlamak

Saniyeler ve Milisaniyeler

İki yaygın kullanım şekli vardır. Unix zamanı saniye cinsinden (2024 itibarıyla 10 rakam, örneğin 1711843200) POSIX API'leri, C/C++ time(), Python'un time.time() ve çoğu sunucu tarafı sistemleri tarafından kullanılır. Unix zamanı milisaniye cinsinden (13 rakam, örneğin 1711843200000) JavaScript'in Date.now(), Java'nın System.currentTimeMillis() ve birçok web API'si tarafından kullanılır. Hızlı kural: 10 rakam saniye; 13 rakam milisaniye demektir. En büyük geçerli 32-bit işaretli tam sayı zaman damgası 2147483647 (saniye) olup, 19 Ocak 2038'e karşılık gelir - bu, eski sistemler için 2038 Yılı problemidir.

ISO 8601 Formatı

ISO 8601, tarih ve zaman temsilleri için uluslararası standarttır. Tam UTC formatı YYYY-MM-DDTHH:mm:ss.sssZ'dir; burada T tarih ve saati ayırır ve Z UTC'yi (Zulu zamanı) belirtir. ISO 8601, API yanıtları ve veri değişimi için önerilen formattır çünkü belirsiz değildir, leksikografik olarak sıralanabilir (dize sırası, kronolojik sıralama ile eşleşir) ve her büyük programlama dilinde ayrıştırılabilir.

Örnek

Zaman Damgasını Tarihe Dönüştür

Girdi (saniye):       1711843200
UTC tarihi (ISO 8601):   2024-03-31T00:00:00.000Z
RFC 2822:              Sun, 31 Mar 2024 00:00:00 +0000
İnsan tarafından okunabilir (UTC):  Pazar, 31 Mart 2024, saat 12:00:00 AM UTC

Tarihi Zaman Damgasına Dönüştür

Girdi:                 2024-03-31 00:00:00 UTC
Unix (saniye):        1711843200
Unix (milisaniye):   1711843200000

Yaygın Zaman Damgası Formatları

  • Unix saniyeleri (POSIX): 1711843200 - 10 rakam, C, Python, Go, çoğu sistem API'sinde kullanılır
  • Unix milisaniyeleri: 1711843200000 - 13 rakam, JavaScript, Java, birçok REST API'sinde kullanılır
  • ISO 8601 UTC: 2024-03-31T00:00:00Z - API yanıtları ve veri depolama için önerilir
  • ISO 8601 ile offset: 2024-03-31T03:00:00+03:00 - belirsiz yerel zaman için zaman dilimi offseti içerir
  • RFC 2822: Sun, 31 Mar 2024 00:00:00 +0000 - e-posta başlıklarında ve HTTP Date başlığında kullanılır
  • Unix Epoch referansı: 0 = 1970-01-01T00:00:00Z

En İyi Uygulamalar

  • Zaman damgalarını veritabanlarında UTC olarak depolayın - yalnızca görüntüleme katmanında yerel zamana dönüştürün
  • API yanıtları için ISO 8601 kullanın - belirsizdir ve tüm dillerde ayrıştırılabilir
  • Yeni sistemler için milisaniyeleri tercih edin, alt-saniye hassasiyeti ile kayan nokta aritmetiğinden kaçınmak için
  • 2038 Yılı taşma problemini önlemek için 32-bit zaman damgası depolamasını 64-bit'e geçirin

Gömülü zaman damgalarına sahip benzersiz tanımlayıcılar için, UUID v7 (RFC 9562) Unix milisaniye zaman damgalarını rastgele bitlerle birleştirir ve sıralanabilir, benzersiz kimlikler oluşturur - sıralama düzeni gerekmiyorsa UUID v4 için UUID Üretici kullanın. Zaman damgaları içeren JSON yanıtlarını hata ayıklamak için JSON Biçimlendirici, iç içe geçmiş zaman damgası alanlarını okunabilir hale getirir.

Sıkça Sorulan Sorular

Unix zaman damgası nedir?

Unix zaman damgası, Unix Epoch'tan itibaren geçen saniye sayısını ifade eder - 1 Ocak 1970, gece yarısı (00:00:00 UTC) - artık sıçrama saniyeleri hariç. Zaman diliminden bağımsızdır, basit bir tam sayıdır ve karşılaştırması ve sıralaması kolaydır. Unix zaman damgaları, işletim sistemlerinde, veritabanlarında ve programlama dillerinde zamanın evrensel içsel temsilidir.

Bir zaman damgasının saniye mi yoksa milisaniye mi olduğunu nasıl anlarım?

Rakamları sayın. 2024 itibarıyla, Unix zaman damgaları saniye cinsinden 10 rakamdır (örneğin, 1700000000). Milisaniye cinsinden zaman damgaları 13 rakamdır (örneğin, 1700000000000). Sayı yaklaşık 10 milyardan azsa, muhtemelen saniyedir. Nanosecond hassasiyetinde zaman damgaları (bazı yüksek frekanslı sistemlerde kullanılır) 19 rakamdır.

2038 Yılı problemi nedir?

Unix zaman damgalarını 32-bit işaretli tam sayılar olarak depolayan sistemler, yalnızca 2,147,483,647'ye kadar olan değerleri temsil edebilir. Bu maksimum değer, 19 Ocak 2038 saat 03:14:07 UTC'ye karşılık gelir. Bunun ardından bir saniye eklemek, tam sayı taşmasına neden olur ve büyük bir negatif sayıya dönüşür, bu da tarih hesaplamalarını bozar. Modern 64-bit sistemler, yaklaşık 292 milyar yıl boyunca güvenlidir.

Dönüştürücü yerel zaman dilimimi kullanıyor mu?

Evet. Araç hem UTC'yi hem de yerel saatinizi gösterir. Yerel saat, tarayıcınızın zaman dilimi ayarına göre belirlenir ve bu ayar, işletim sisteminizin yapılandırılmış zaman dilimini yansıtır. Sistem saatiniz yanlış yapılandırılmışsa veya seyahat ediyorsanız, yerel saat görüntüsü bu ayarı yansıtır.

Kodda mevcut Unix zaman damgasını nasıl alabilirim?

JavaScript: Math.floor(Date.now() / 1000) saniyeler için veya Date.now() milisaniyeler için. Python: import time; int(time.time()). Go: time.Now().Unix() saniyeler için, time.Now().UnixMilli() milisaniyeler için. PostgreSQL: EXTRACT(EPOCH FROM NOW()). Bash: date +%s.