Tarih/Saat Donusturucu
Unix zaman damgalarini, ISO 8601 tarihlerini, RFC 2822 formatini, ABD/AB tarih stillerini, uzun tarihleri ve goreli ifadeleri isleme alabilen kapsamli bir tarih ve saat ayristirici. Formatlar arasinda donusum yapar, goreli zamani gosterir ve mevcut zaman damgasi referansi saglar.
Spesifikasyonlar
Yaygin Kullanim Alanlari
- Zaman damgalari veya tarihler iceren API yanitlarini hata ayiklama
- Log dosyasi zaman damgalarini okunabilir tarihlere donusturme
- Farkli bolgesel formatlardan tarihleri ayristirma
- Olaylar arasindaki zaman farklarini hesaplama
- API istekleri icin zaman damgalari olusturma
- Token sona erme surelerini dogrulama (JWT exp claim'i)
- Uluslararasi takimlar icin tarih formatlari arasinda donusturme
Ozellikler
- Format otomatik algilama: Unix zaman damgalari, ISO 8601, RFC 2822, ABD/AB tarihleri ve daha fazlasi
- Saniye, milisaniye, mikrosaniye veya nanosaniye cinsinden Unix zaman damgalarini ayristirma
- Saat ile veya saatsiz ISO 8601 tarihlerini isleme (2024-01-25T12:00:00Z)
- ABD formati (01/25/2024), AB formati (25.01.2024) ve uzun tarihleri (January 25, 2024) ayristirma
- Goreli ifadeleri tanima: now, today, yesterday, tomorrow
- Goreli zamani gosterme ("2 saat once", "3 gun icinde")
- Gecmis/Gelecek/Bugun durum rozetleri
- Haftanin gunu, hafta numarasi, ceyrek ve yilin gunu gosterme
- Takvim metrikleri izgarasi (yilin haftasi, ceyrek, yilin gunu)
- Ek bilgi bolumu (saat dilimi, aydaki gun sayisi, artik yil)
- Kopyalama dumeleriyle birden fazla cikti formatina donusturme
- Unix mikrosaniye ve nanosaniye ciktisi
- Yenileme dumeli mevcut zaman referans karti
Ornekler
Unix Zaman Damgasi (milisaniye)
Deneyin →JavaScript tarzinda milisaniye cinsinden zaman damgasi.
1706188800000Ipuclari
- JavaScript Date.now() milisaniye dondurur; cogu Unix araci saniye kullanir.
- ISO 8601 formati (2024-01-25T12:00:00Z) en tasinabilir ve belirsizligi olmayan formattir.
- Depolama icin UTC zaman damgalari kullanin; yerel saate yalnizca gosterim icin donusturun.
- Bir tarih belirsiz oldugunda (ornegin 01/02/2024), arac formati belirlemek icin baglam ipuclarini kullanir.
- "2038 Yili Problemi" Unix saniyeleri icin isaretli tam sayilar kullanan 32-bit sistemleri etkiler.
Anlama Tarih/Saat Donusturucu
Unix zaman damgalari, belirli bir ani Unix epoch'undan (1 Ocak 1970, 00:00:00 UTC) bu yana gecen saniye sayisi olarak temsil eder. Bu basit tam sayi temsili, veritabanlari, API'ler, dosya sistemleri, log dosyalari ve isletim sistemi arayuzleri tarafindan kullanilan evrensel zaman formatidir. Format belirsizlik icermez — insan tarafindan okunabilir tarihlerden farkli olarak, bir Unix zaman damgasi saat dilimine bakilmaksizin her zaman tam olarak bir ani isaret eder.
Iki hassasiyet seviyesi yaygindir. Saniye hassasiyetindeki zaman damgalari (10 basamak, ornegin 1738800000) cogu Unix API'si, veritabani ve C time() fonksiyonu tarafindan kullanilan geleneksel Unix formatidir. Milisaniye hassasiyetindeki zaman damgalari (13 basamak, ornegin 1738800000000) JavaScript (Date.now()), Java (System.currentTimeMillis()) ve bircok web API'si tarafindan kullanilir. Bu arac hassasiyeti otomatik olarak algilar ve her ikisini de dogru sekilde isler.
ISO 8601, standart insan tarafindan okunabilir tarih-saat formatidir: 2025-02-05T12:00:00Z. T, tarih ve saati ayirir ve Z, UTC'yi (Zulu zamani) gosterir. Saat dilimi ofsetleri +HH:MM veya -HH:MM gosterimini kullanir. ISO 8601, JSON Schema tarafindan zorunlu tutulur, REST API'lerde yaygin olarak kullanilir ve herhangi bir tarih-saat dizesi degisimi icin onerilir. RFC 2822 formati (e-posta basliklarinda kullanilir) yaygin baska bir metin temsilidir.
Saat dilimi islemesi, tarih-saat hatalarinin en yaygin kaynagidir. Gelistiriciler siklikla UTC zaman damgalarini yerel saatlerle karistirirlar, saat dilimi donusumlerini yanlis uygularlar veya yerel saatleri saat dilimi bilgisi olmadan saklarlar. En iyi uygulama, zamanlari her zaman UTC'de saklamak ve iletmek, yalnizca gosterim icin yerel saate donusturmektir.
Unix zaman damgalarini 32-bit isaretli tam sayilar olarak saklayan sistemler 19 Ocak 2038'de 03:14:07 UTC'de tasacak ve Aralik 1901'i temsil eden negatif bir sayiya donusecektir. Bu Y2K'ya benzerdir ancak bilgi islem altyapisini daha genis olcude etkiler. Cozum, araligi milyarlarca yila genisleten 64-bit tam sayilar kullanmaktir. Modern sistemlerin cogu zaten 64-bit zaman kullaniyor, ancak gomulu sistemler ve eski kodlar hala savunmasiz olabilir.
Tarihleri zaman damgasi olarak mi yoksa bicimlenmis dize olarak mi saklayacaginizi secerken kullanim durumunu dikkate alin. Zaman damgalari (tam sayilar) siralama, sure hesaplama ve tarih karsilastirma gibi yogun hesaplama gerektiren senaryolar icin idealdir — kompakt, belirsizlik icermeyen ve saat dilimine karsi notrturler. ISO 8601 dizeleri, insan okunabilirligi onemliyken, saat dilimi baglaminin korunmasi gerektiginde veya veritabaninin yerel datetime turlerine sahip oldugunda tercih edilir. Ornegin PostgreSQL'in timestamptz'si dahili olarak UTC'de saklar ve gosterim icin donusturur.
Bir gun kayik gorunen tarihler neredeyse her zaman saat dilimi karisikligindan kaynaklanir. 5 Subat 23:00 UTC icin bir UTC zaman damgasi, UTC+2 saat dilimlerinde zaten 6 Subat'tir. JavaScript'te Date() yalnizca tarih dizeleri icin yerel saat kullanirken, saat dilimi belirteci iceren datetime dizeleri icin UTC kullanir. Saat dilimleri hakkinda acik olmak ve depolama ile iletim icin tutarli sekilde UTC kullanmak, bu ince hatalari onler.