Unix zamanı neyi sayar?
Unix zamanı, 1970-01-01T00:00:00Z başlangıcından itibaren geçen POSIX saniyelerini sayar. POSIX modelinde her gün tam 86.400 saniyedir; artık saniyeler sayaca eklenmez. Bu yüzden epoch, astronomik geçen süre ölçeri değil, yazılım sistemleri arasında taşınabilen ortak bir zaman çizgisidir.
Negatif değerler geçerlidir ve ürünün proleptik Gregoryen eşlemesiyle 1970 öncesini gösterir. Ancak POSIX XBD §4.19, değer negatif (veya yıl 1970'ten küçük) olduğunda takvim adı–epoch saniyesi ilişkisini tanımsız bırakır; bu yüzden bu eşleme taşınabilir bir standart sonucu değil ürün uzantısıdır ve negatif sonuçlar bir kapsam uyarısı taşır. Buna karşılık saniye ile milisaniyeyi karıştırmak, doğru sayıyı yanlış ölçekte yorumladığı için tarihi onlarca yıl kaydırabilir.
Üç adımda kullanım
Değeri girin
Epoch sayısını, ISO-8601 metnini veya YYYY-MM-DD HH:mm:ss biçimini girdi alanına yazın.
Birimi ve dilimi seçin
Otomatik sezgiyi denetleyin; çıktı zaman dilimini ve ofsetsiz metin için kaynak dilimini seçin.
Sonucu alın
UTC, yerel saat, epoch ölçekleri, ISO hafta ve makine-okunur JSON alanlarını kopyalayın.
Adım adım: 1700000000
- Tip: 10 haneli yalnız-rakam girdi, otomatik kurala göre saniyedir.
- UTC:
2023-11-14T22:13:20.000Z; hafta günü Salı. - Europe/Istanbul: o andaki IANA kuralı UTC+03:00 olduğundan
2023-11-15T01:13:20+03:00; yerel hafta günü Çarşamba. - ISO hafta: UTC tarihine göre
2023-W46-2. - Excel seri:
1700000000 / 86400 + 25569 = 45244.92592592593.
Formüller ve doğruluk sınırları
ISO-8601 hafta
Hafta pazartesi başlar; W01, yılın ilk perşembesini içeren haftadır. Tarih önce kendi haftasının perşembesine kaydırılır, sonra o perşembenin ait olduğu ISO yılı üzerinden hafta sayılır.
isoGün = Pzt 1 … Paz 7; perşembe = tarih + (4 − isoGün); hafta = floor((perşembe − isoYılın 1 Ocağı) / 7 gün) + 1Yılın günü ve artık yıl
1 Ocak 1'dir. Gregoryen kuralında 4'e bölünen yıllar artık; 100'e bölünenler değil; 400'e bölünenler yeniden artıktır.
Excel 1900 sistemi
1900-01-01 ≤ an < 1900-03-01: epochSaniye / 86400 + 25569 − 1 · an ≥ 1900-03-01: epochSaniye / 86400 + 25569 · an < 1900-01-01: null1900-01-01–1900-02-28: excelSeri = epochSaniye / 86400 + 25569 − 1; bu nedenle 1900-01-01=1 ve 1900-02-28=59 olur, kesirli gün korunur. Hayalî seri 60: Excel, Lotus 1-2-3 uyumluluğu için var olmayan 1900-02-29'u seri 60 sayar; bu seri hiçbir gerçek Gregoryen tarihe karşılık gelmez. 1900-03-01 ve sonrası: excelSeri = epochSaniye / 86400 + 25569; bu nedenle 1900-03-01=61 olur. 1900-01-01 öncesi: Excel 1900 sistemi tarafından desteklenmez; excelSeri null ve excelDurumu.durum desteklenmiyor olur.
Zaman dilimi
Yerel saat ve ofset, seçilen an için tarayıcının gömülü IANA verisinden Intl.DateTimeFormat(..., { timeZone }) ile hesaplanır. Sabit “+3 saat” eklenmez: İstanbul 1970 başında +02:00, 2015 kışında +02:00, 2015 yazında +03:00 ve 2016'daki düzenlemeden sonra +03:00 verir.
Hassasiyet ve aralık
Nanosaniye sayacı BigInt ile korunur; JSON güvenliği için güvenli tamsayı sınırını aşan değerler metin döner. Tarih gösterimi JavaScript Date sınırı olan ±8,64×1015 milisaniye içindedir ve milisaniye altındaki bölüm yalnız epoch alanlarında korunur.
Standart alanları
RFC 3339 yalnız 0000–9999, IMF-fixdate yalnız 1900–9999 yıllarında yayımlanır. Sınır dışında standart alanı null, yapılandırılmış uygunluk durumu uygun-degil olur; genişletilmiş ECMAScript tarih metni standart adı taşımayan genisletilmisGosterim alanına alınır.
Sık yapılan hatalar
- Saniye ile milisaniyeyi karıştırmak: sonuç 1970 çevresinde ya da yaklaşık 55.000 yılında görünebilir.
- Geçmiş tarihe sabit +3 saat eklemek: Türkiye'de 2016 öncesinde mevsimsel saat değişiklikleri vardı; IANA kuralı kullanılmalıdır.
- Tarih dizilerinin yorumunu aynı sanmak:
new Date("2026-01-01")tarih-biçimli diziyi UTC gün başı,new Date("2026-01-01T00:00:00")ise ofsetsiz tarih-saati yerel saat olarak yorumlayabilir. - ISO hafta yılını takvim yılı sanmak: 1 Ocak önceki ISO yılının 52. veya 53. haftasına düşebilir; örneğin 2027-01-01,
2026-W53-5'tir. - 2038 sınırını atlamak: signed 32-bit saniye sayacı 2038-01-19T03:14:07Z değerinden sonra taşar.
- Artık saniyenin epoch'a eklendiğini sanmak: POSIX günleri daima 86.400 saniye kabul eder.
- Excel kaymasını unutmak: 1900 Ocak ve Şubat için modern +25569 sonucundan 1 çıkarılır; seri 60 hayalîdir, 1900 öncesi desteklenmez.
Standart ve mevzuat dayanakları
Aşağıdaki künyeler birincil/resmî metinlerle doğrulanmıştır; URL, erişim tarihi ve doğrulama notlarının tamamı KUNYE.md dosyasındadır.
- Unix/POSIX zamanı: The Open Group Base Specifications, “Seconds Since the Epoch” ve POSIX.1-2024 temel tanımları.
- ISO hafta tarihi: ISO 8601-1:2019, hafta takvimi; ilk perşembeyi içeren hafta W01.
- Makine tarih biçimleri: IETF RFC 3339; RFC 5322 §3.3; RFC 7231 §7.1.1.1 (IMF-fixdate) ve onun güncel ardılı RFC 9110 §5.6.7.
- Excel seri tarihi: Microsoft Support, 1900 ve 1904 tarih sistemleri; Microsoft Learn, 1900 yılının artık yıl kabul edilmesi uyumluluk davranışı.
- Türkiye saati: 7 Eylül 2016 tarihli 2016/9154 sayılı Bakanlar Kurulu Kararı (Resmî Gazete: 8 Eylül 2016, 29825) ve 1 Ekim 2018 tarihli 139 sayılı Cumhurbaşkanı Kararı (Resmî Gazete: 2 Ekim 2018, 30553).
- 2038 sınırı: The Open Group
time_ttanımı ve signed 32-bit tamsayı üst sınırının Unix saniyesine uygulanması.
Sık sorulan sorular
Unix zaman damgası nedir?
Unix zaman damgası, 1 Ocak 1970 00:00:00 UTC'den beri geçen POSIX saniyelerinin sayısıdır; artık saniyeleri saymaz. Negatif olduğunda ürünün proleptik Gregoryen eşlemesiyle 1970 öncesini gösterir; ancak POSIX XBD §4.19 bu ilişkiyi tanımsız bırakır, dolayısıyla gösterim taşınabilir standart değil ürün uzantısıdır.
10 haneli mi 13 haneli mi, nasıl anlarım?
[TASARIM-SEZGİSİ] Bu eşikler normatif bir standart değildir: 1–10 hane saniye, 11 hane belirsiz saniye veya milisaniye, 12–14 hane milisaniye, 15–17 hane mikrosaniye ve 18+ hane nanosaniye adayıdır. 11 hanede araç kesin sonuç vermez; iki gerçek adayı taşır ve açık birim seçimi ister.
Timestamp'i Türkiye saatine nasıl çeviririm?
Çıktı zaman dilimini Europe/Istanbul seçin. Araç o tarihte geçerli IANA kuralını uygular; 2016 öncesi tarihlere sabit üç saat eklemez.
ISO-8601 formatı nedir, Z ne demek?
ISO-8601 tarihi büyükten küçüğe düzenler; örneğin 2026-07-26T11:00:00Z. Sondaki Z, ofsetin sıfır olduğunu yani UTC'yi belirtir; +03:00 ise yerel saatin UTC'den üç saat ileride olduğunu söyler.
2038 sorunu nedir?
Unix saniyesini signed 32-bit tamsayıda tutan sistemler 2147483647 değerinden, yani 2038-01-19T03:14:07Z anından sonra temsil sınırını aşar. Modern daha geniş sayaçlar bu sınırı kaldırır.
Excel'de timestamp'i tarihe nasıl çeviririm?
1900-01-01–1900-02-28: excelSeri = epochSaniye / 86400 + 25569 − 1; bu nedenle 1900-01-01=1 ve 1900-02-28=59 olur, kesirli gün korunur. Hayalî seri 60: Excel, Lotus 1-2-3 uyumluluğu için var olmayan 1900-02-29'u seri 60 sayar; bu seri hiçbir gerçek Gregoryen tarihe karşılık gelmez. 1900-03-01 ve sonrası: excelSeri = epochSaniye / 86400 + 25569; bu nedenle 1900-03-01=61 olur. 1900-01-01 öncesi: Excel 1900 sistemi tarafından desteklenmez; excelSeri null ve excelDurumu.durum desteklenmiyor olur.
Negatif timestamp olur mu?
Evet. Negatif Unix zaman damgaları 1 Ocak 1970 00:00:00 UTC'den önceki anları gösterir; örneğin -86400, ürünün proleptik Gregoryen eşlemesiyle 1969-12-31T00:00:00Z'dir. Ancak POSIX XBD §4.19, değer negatif olduğunda takvim adı–epoch saniyesi ilişkisini tanımsız bırakır; bu yüzden gösterilen tarih taşınabilir bir standart sonucu değil ürün uzantısıdır ve negatif sonuçlar bir kapsam uyarısı taşır.