Coba jelasin Durasi dari ISO 8601 dong

Durasi mendefinisikan besar jeda waktu dalam interval waktu dan diwakili oleh format  atau  seperti yang ditunjukkan tabel di samping. Dalam representasi ini, [n] digantikan oleh nilai untuk masing-masing satuan tanggal dan waktu yang mengikuti [n]. Angka nol di depan tidak diperlukan, tetapi jumlah digit maksimum untuk setiap elemen harus disepakati oleh pihak-pihak yang berkomunikasi. Huruf kapital P, Y, M, W, D, D, T, H, M, dan S adalah penunjuk untuk masing-masing elemen tanggal dan waktu dan tidak boleh diganti.

P adalah penunjuk durasi (untuk periode) yang ditempatkan pada awal representasi durasi.

Y adalah penunjuk tahun (year) yang mengikuti nilai untuk jumlah tahun kalender.

M adalah penunjuk bulan (month) yang mengikuti nilai untuk jumlah bulan kalender.

W adalah penunjuk minggu (week) yang mengikuti nilai untuk jumlah minggu.

D adalah penunjuk hari (day) yang mengikuti nilai untuk jumlah hari kalender.

T adalah penunjuk waktu yang mendahului komponen waktu dari representasi.

H adalah penunjuk jam (hour) yang mengikuti nilai untuk jumlah jam.

M adalah penunjuk menit (minute) yang mengikuti nilai untuk jumlah menit.

S adalah penunjuk detik (second) yang mengikuti nilai untuk jumlah detik.

Sebagai contoh, "P3Y6M4DT12H30M5S" mewakili durasi "tiga tahun, enam bulan, empat hari, dua belas jam, tiga puluh menit, dan lima detik".

Satuan tanggal dan waktu termasuk penunjuknya dapat dihilangkan jika nilainya nol, dan satuan waktu yang lebih rendah juga dapat dihilangkan untuk mengurangi presisi. Misalnya, "P23DT23H" dan "P4Y" keduanya merupakan representasi durasi yang dapat diterima. Namun, setidaknya satu elemen harus ada, sehingga "P" bukan representasi yang valid untuk durasi 0 detik. "PT0S" atau "P0D", bagaimanapun, keduanya valid dan mewakili durasi yang sama.

Untuk mengatasi ambiguitas, "P1M" adalah durasi untuk satu bulan dan "PT1M" adalah durasi untuk satu menit (perhatikan penunjuk waktu, T, yang mendahului nilai waktu). Nilai terkecil yang digunakan juga dapat memiliki pecahan desimal, seperti dalam "P0.5Y" untuk menunjukkan setengah tahun. Pecahan desimal ini dapat ditentukan dengan koma atau tanda titik, seperti dalam "P0,5Y" atau "P0.5Y". Standar ini tidak melarang nilai tanggal dan waktu dalam representasi durasi melebihi "carry over point" kecuali seperti yang disebutkan di bawah ini. Dengan demikian, "PT36H" dapat digunakan serta "P1DT12H" untuk mewakili durasi yang sama. Tetapi perlu diingat bahwa "PT36H" tidak sama dengan "P1DT12H" ketika beralih dari atau ke waktu musim panas.

Sebagai alternatif, format untuk durasi berdasarkan representasi tanggal dan waktu gabungan dapat digunakan dengan kesepakatan antara pihak-pihak yang berkomunikasi baik dalam format dasar PYYYYMMDDThhmmss atau dalam format yang diperluas . Contohnya, durasi "P3Y6M4DT12H30M5S" dapat dituliskan sebagai . Namun demikian, nilai tanggal dan waktu individual tidak bisa melebihi moduli mereka (misalnya, nilai 13 untuk bulan atau 25 untuk jam tidak akan diizinkan).

Standar ISO 8601 mendefinisikan durasi sebagai bagian dari interval waktu, yang dibahas di bagian berikutnya. Format durasi itu sendiri ambigu terkait jumlah hari dalam satu tahun kalender dan bulan kalender. Jumlah detik dalam satu hari kalender juga ambigu karena detik kabisat. Misalnya "P1M" dapat berarti 28, 29, 30, atau 31 hari. Tidak ada ambiguitas saat interval waktu digunakan. Menggunakan contoh "P2M" untuk durasi dua bulan kalender:

interval  berakhir dua bulan kalender kemudian, yakni pada  atau 59 hari kemudian

interval berakhir dua bulan kalender kemudian, yakni pada  atau 62 hari kemudian

Format durasi (atau subset darinya) secara luas digunakan terlepas dari definisi interval waktu, seperti pada kelas Java 8 Duration yang mendukung subset dari format durasi.