Unix Zaman Damgalarını Okunabilir Tarihleri Dönüştürme
Hızlı Yanıt
Unix timestamp = 1970-01-01 00:00:00 UTC'den bu yana saniye (veya milisaniye). JavaScript'te new Date(timestamp * 1000) (saniye) veya new Date(timestamp) (milisaniye) ile tarihe dönüştürün. Her ikisini de anında yapmak için Timestamp Converter kullanın.
giriiş
Unix timestamp (epoch time veya POSIX time da denir), 1970-01-01 00:00:00 UTC'den (Unix epoch) bu yana geçen saniye sayısıdır, leap second hariç. Computing'de zamanın lingua franca'sıdır çünkü timezone-bağımsız ve trivial olarak sıralanabilen tek bir integer'dır. Çoğu sistem saniye kullanır; JavaScript ve birçok veritabanı milisaniye kullanır.
Adım adım
-
Saniye ve milisaniye arasındaki farkı anlayın
Çoğu arka uç sistemi ve APIs saniye kullanır (2286'ya kadar 10 basamaklı zaman damgaları). JavaScript'in Tarihi ve Java'nın Anında Araması milisaniyeyi (13 basamaklı) kullanır. Her zaman bir API'ün hangi birimi beklediğini doğrulayın; bunları karıştırmak tarihi 1000 kat kaydırır (~31 yıl sapma).
-
Zaman damgasını okunabilir bir tarihe dönüştürme
Zaman damgasını Zaman Damgası Dönüştürücüsüne yapıştırın. Uzunluğa (10'a karşı 13 basamak) göre saniyeleri ve milisaniyeleri algılar ve tarihi UTC'de ve yerel saat diliminizde görüntüler. Kodda: new Date(1700000000 * 1000).toISOString(), '2023-11-14T22:13:20.000Z' değerini döndürür.
-
Tarihi zaman damgasına dönüştürme
Dönüştürücüye bir tarih ve saat girin; Unix zaman damgasını döndürür. Şu kodda: Math.floor(new Date('2026-08-28T12:00:00Z').getTime() / 1000), çağ saniyesini döndürür. Yerel saat belirsizliğini önlemek için her zaman saat dilimini (Z veya fark) belirtin.
-
Saat dilimlerini doğru şekilde kullanın
Unix zaman damgaları her zaman UTC'dir; saat dilimleri yoktur. Yalnızca sunum katmanında yerel ekrana dönüştürün. Yerel saati hiçbir zaman zaman damgası olarak saklamayın; UTC'yi saklayın ve ekranda dönüştürün. Doğru DST işleme için IANA saat dilimi adlarını (America/New_York) Intl.DateTimeFormat ile birlikte kullanın.
-
Tarihler arasındaki farkları hesaplama
Farkı saniye (veya milisaniye) olarak bulmak için iki zaman damgasını çıkarın. Dakika için 60'a, saat için 3600'e, gün için 86400'e bölün. İnsan dostu aralıklar için Tarih Farkı aracımızı veya doğum tarihine dayalı yaşlar için Yaş Hesaplayıcıyı kullanın.
Örnekler
Unix çağı
Giriş: 0 (seconds)
Çıkış: 1970-01-01 00:00:00 UTC
Çağdan bir milyar saniye sonra
Giriş: 1000000000 (seconds)
Çıkış: 2001-09-09 01:46:40 UTC
UTC'de 2026'nın başlangıcı
Giriş: 2026-01-01T00:00:00Z
Çıkış: 1767225600 (saniye) / 1767225600000 (milisaniye)
İki tarih arasındaki fark
Giriş: 1767225600 - 1700000000
Çıkış: 67225600 seconds = 778.08 days ≥2 years 31 days
Yaygın Sorunlar
- Saniyeler ve milisaniyeler arasındaki kafa karışıklığı: Milisaniye olarak okunan 10 basamaklı bir zaman damgası, 1970 yılına ait bir tarih verir; saniye olarak okunan 13 basamaklı zaman damgası 32 bit int'yi aşıyor. Birimi rakam sayımına göre tespit edin veya bunu API'de açıkça belgeleyin.
- Yerel saati zaman damgası olarak saklama: zaman damgaları UTC'dir. Date.now()'u UTC-5'e ayarlanmış bir tarayıcıda hesaplarsanız ve sonucu yerel olarak değerlendirirseniz, DST geçişleri verilerinizi yılda iki kez birer saat kaydıracaktır.
- 2038-01-19 03:14:07 UTC (Y2038) tarihinde 32 bit taşma: İmzalı 32 bit saniye zaman damgası kullanan sistemler bu noktadan sonraki tarihleri temsil edemez. Yeni sistemlerde 64 bit veya milisaniyelik zaman damgalarını kullanın.
- Artık saniyeler göz ardı edilir: Unix zaman damgaları artık saniyeleri atlar, dolayısıyla iki zaman damgası arasındaki fark geçen SI saniye sayısına eşit değildir. Çoğu uygulama bunu göz ardı edebilir; yüksek hassasiyetli astronomi ve finans bunu yapamaz.
İpuçları
- Zaman damgalarını her zaman UTC'de saklayın ve iletin; IANA saat dilimiyle Intl.DateTimeFormat kullanarak yalnızca görüntüleme katmanında yerel saate dönüştürün.
- İnsanların okuyabileceği APIs ve depolama için zaman damgaları için ISO 8601 dizelerini (ör. 2026-08-28T12:00:00Z) kullanın —ISO dizeleri, saat dilimlerini açıkça taşır ve nettir.
- Zaman damgalarını karşılaştırırken her iki tarafta da aynı birimi (saniye veya milisaniye) kullanın; birim uyumsuzluğu en yaygın tarih hatalarından biridir.
- Hata ayıklama sırasında API yanıtlarının doğruluğunu kontrol etmek için Zaman Damgası Dönüştürücümüzü kullanın; hem UTC'yi hem de yerel saati gösterir, böylece saat dilimi hatalarını hemen tespit edebilirsiniz.