Tüm rehberler

Unix zaman damgasını tarihe, tarihi zaman damgasına dönüştürmek

Yayımlanma: · Güncellenme: 2 dk okuma

Bir Unix zaman damgası, evrensel saatle 1 Ocak 1970 gece yarısından beri geçen zamanı sayar. İki soru ortaya çıkan tarihi belirler: sayının birimi ve sonucu okuduğunuz saat dilimi.

Bir referans değer

Unix zaman damgası dönüştür aynı anın üç okumasını verir. 1700000000 için, Paris saatine ayarlı bir tarayıcıyla:

OkumaSonuç
UTC tarihiTue, 14 Nov 2023 22:13:20 GMT
Yerel tarih14 Kasım 2023, 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

Yerel saat tarayıcının saat dilimini izler: Paris’te kışın bir saat fazla. Aynı zaman damgası tek bir andır, iki saat diliminde okunmuş.

Birim rakam sayısından tanınır

Varsayılan ayar birimi sayının uzunluğundan tanır. Aşağıdaki üç değer, hassasiyet dışında aynı anı belirtir.

SayıRakamlarTanınan birimElde edilen an
170000000010Saniye14 Kas 2023, 22:13:20 UTC
170000000000013Milisaniye14 Kas 2023, 22:13:20 UTC
170000000012345616Mikrosaniye14 Kas 2023, 22:13:20.123 UTC

Kural: 11 rakama kadar saniye; 12 ile 14 arası milisaniye; 15 ve 16 mikrosaniye. “Milisaniye” ayarı o birimi zorlar.

Kuralın tuzağı

Birim uzunluktan çıkarıldığından, belirsiz bir değer tek bir yönde okunur: 10000000000 (11 rakam) 20 Kasım 2286, 100000000000 (12 rakam) 3 Mart 1973 verir. Mart 1973’ten önceki bir milisaniye zaman damgası 11 rakam veya daha azına sahiptir ve saniye olarak okunurdu: o zaman “milisaniye” ayarını zorlayın.

1970 öncesi değerler ve 2038 sınırı

Negatif bir sayı 1970’ten önceki bir anı belirtir: −1, 31 Aralık 1969 23:59:59 UTC; 0, 1 Ocak 1970 gece yarısı verir.

2147483647 sayısı, işaretli 32 bitlik bir tam sayının taşıyabileceği en büyük sayıdır: 19 Ocak 2038 03:14:07 UTC verir. Sonraki sayı, 2147483648, 03:14:08 verir: araç sınırsız devam eder ama zamanı 32 bitte saklayan bir sistem edemez.

Bir tarihi zaman damgasına dönüştürmek

Bir sayı yerine bir tarih girin: araç zaman damgasını saniye ve milisaniye cinsinden verir.

GirdiSaniye cinsinden zaman damgasıOkuma
2026-01-011767225600Evrensel saatle gece yarısı, saat dilimi verilmedi
2026-01-01T10:30:00+01:001767259800Paris’te 10:30, yani evrensel saatle 09:30
2024-02-291709164800Artık yıl kabul edildi

Saat dilimi olmayan bir tarih yerel saatte değil, evrensel saatte okunur: araç bunu sonuçta söyler. 30 Şubat 2026 gibi var olmayan bir tarih bir mesajla reddedilir.

Sık yapılan hatalar

  • Milisaniyeyi saniye olarak okumak: tarih binlerce yıl fazla uzağa düşer.
  • Saat dilimini unutmak: yerel olarak okunup sonra evrensel olarak gönderilen bir tarih bir veya daha fazla saat kayar.
  • Yerel saati düşünerek saat dilimsiz bir tarih yazmak, oysa UTC olarak okunacaktır.

İki tarih arasındaki günleri saymak için İki tarih arasındaki günleri saymak rehberine bakın.

Bir dönüşümü kontrol etmek

  1. Cihaza bağlı olmayan UTC satırını yeniden okuyun.
  2. Sonucun ilk satırında bildirilen birimi kontrol edin.
  3. Elde edilen tarihi geri dönüştürün: başlangıçtaki sayıyı bulmalısınız.

Unix zaman damgası dönüştür