Semua artikel

ISO 8601 Duration: cara menulis durasi dalam format standar

Standar ISO 8601 tidak hanya mendefinisikan format tanggal, tapi juga format penulisan durasi — string seperti PT1H30M, yang menjelaskan secara jelas dan bisa dibaca mesin "1 jam 30 menit".

Struktur format

String selalu dimulai dengan huruf P (period). Komponen tanggal (tahun, bulan, hari) langsung setelah P, sedangkan komponen waktu (jam, menit, detik) setelah huruf T, yang memisahkan bagian tanggal dari bagian waktu. Misalnya, P2DT4H berarti "2 hari dan 4 jam".

Mengapa huruf T dibutuhkan

Tanpa pemisah T, huruf M akan ambigu — ia menandakan baik bulan (di bagian tanggal) maupun menit (di bagian waktu). Karena itu P1M berarti "1 bulan", sedangkan PT1M berarti "1 menit".

Kenapa tag durasi podcast bukan ISO 8601

Umpan RSS podcast menggunakan tag <itunes:duration>, tapi tag ini biasanya berisi format HH:MM:SS atau jumlah detik polos — bukan sintaks ISO 8601 seperti PT1H30M. Jadi kalau sebuah aplikasi podcast perlu menggabungkan data dari umpan RSS dengan API lain yang memakai ISO 8601 duration, konversi format harus dilakukan secara eksplisit; keduanya tidak bisa langsung dipertukarkan begitu saja.

Untuk apa ini dibutuhkan

  • Memecahkan durasi video atau acara dari respons API pihak ketiga.
  • Menghasilkan string duration ISO 8601 yang valid untuk API atau feed data Anda sendiri.
  • Mengonversi durasi antara format yang bisa dibaca manusia dan notasi ISO yang bisa dibaca mesin.

Detik pecahan dalam notasi

Standar ISO 8601 hanya mengizinkan bagian pecahan pada komponen terakhir (terkecil) dari string — misalnya, PT1.5S berarti "1,5 detik", dan PT1H30.5M berarti "1 jam 30,5 menit". Bagian pecahan pada komponen lain selain yang terakhir tidak dimungkinkan oleh standar ini.

Coba alat