ISO 8601 Süre Dönüştürücü

Çözmek için ISO 8601 süresi, biçimlendirmek için toplam saniye girin.

Nasıl hesaplanır?

Araç iki yönde çalışır. Çözümleme, P[n]D T[n]H[n]M[n]S biçimindeki dizeyi (boşluksuz) okur; her parça isteğe bağlıdır ama en az biri bulunmalıdır ve T harfi gün kısmını saat kısmından ayırır. Toplam saniye gün × 86400 + saat × 3600 + dakika × 60 + saniye olarak bulunur. Biçimlendirme ise saniye sayısını alır, ondalık kısmı atar ve gün, saat, dakika, saniyeye bölerek dizeyi kurar; sıfır girilirse PT0S çıkar. Yalnızca tam sayılı D, H, M ve S kabul edilir. Yıl, ay, hafta (P1W), ondalıklı değer (PT1.5S) ve küçük harf sonuç üretmez. Bir gün her zaman tam 86.400 saniyedir.

Örnek hesaplama

P1DT2H30M süresini çözümleyelim. P süreyi başlatır, 1D bir gündür, T saat kısmına geçer, 2H iki saat, 30M ise otuz dakikadır. Saniyeler: 1 × 86400 = 86.400, artı 2 × 3600 = 7.200, artı 30 × 60 = 1.800; toplam 95.400 s olur. Araç okunabilir biçimi 1d 2h 30m olarak gösterir. Ters yönde, biçimlendirme modunda 95400 saniye girerseniz P1DT2H30M elde edersiniz.

Bu örneği dene →

Sık yapılan hatalar

  • Saatten önce T yazmayı unutmak; P2H reddedilir. Saat, dakika ve saniyenin hepsinin önünde T bulunmalıdır.
  • P2W ya da P3M gibi hafta veya ay yazmak. Araç yalnızca gün, saat, dakika ve saniye bilir; haftayı önce güne çevirin.
  • PT0.5H veya PT1.5S gibi ondalık kullanmak. Yalnızca tam sayılar okunur; bunun yerine PT30M yazın.
  • M harfini karıştırmak: T'den sonra dakika demektir. Burada ay yazmanın bir yolu yoktur.

Bu hesaplama hakkında

ISO 8601, tarih, saat ve süre değerlerinin her yerde aynı şekilde ayrıştırılması için kullanılan uluslararası standarttır. Süre biçimi; yıl, ay, hafta, gün, saat, dakika ve saniyeyi tek bir dizede birleştirir: dize P (“period”) ile başlar, saat/dakika/saniye bileşenlerinden önce bir T eklenir — böylece P1DT2H30M hiçbir dil veya sıralama belirsizliği taşımadan “1 gün, 2 saat, 30 dakika” anlamına gelir.

Bu tam gösterim, XML Schema’nın xs:duration türünde, iCalendar (RFC 5545) etkinlik sürelerinde ve AWS, Google Calendar, Stripe gibi servislerin REST API yanıtlarındaki süre alanlarında kullanılır; Java’nın Duration/Period sınıfları ile Python’ın isodate kütüphanesi de bu biçimi doğrudan okuyup yazar. Bir süre dizesini toplam saniyeye çevirmek, her birimin değerini kendi katsayısıyla (gün×86400, saat×3600, dakika×60, saniye×1) çarpıp toplamak demektir; tersi işlemde ise saniyeler aynı sırayla birimlere bölünüp P/T dizesi yeniden kurulur — bu araç da tam olarak bunu, okunabilir bir dökümle birlikte otomatikleştirir. Yalnızca gün, saat, dakika ve tam sayı saniyeyle çalışır: yıl, ay, hafta (P1W veya P1Y2M gibi) ya da kesirli saniye içeren süreler kabul edilmez; bunları önce güne çevirin.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Buradaki süreler saf saat süresidir: bir gün her zaman 86.400 saniyedir; hafta, ay ve yıl uzunlukları değiştiği için kabul edilmez. Bu yüzden yaz saati uygulaması geçişlerinde takvimdeki P1D ile 24 saat aynı şey olmayabilir. 129600 saniye P1DT12H olarak biçimlenir, PT36H ise yine 129.600 s olarak çözülür. İlk bakışta okuyamadığınız bir süre dizesini hangi API verdi?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar