# ISO 8601

Tanggal dan waktu saat ini dinyatakan menurut ISO 8601 []| Tanggal | 2026-06-21 |
| Tanggal dan waktu dalam UTC | 2026-06-21T01:51:57+00:00 2026-06-21T01:51:57Z 20260621T015157Z |
| Minggu | 2026-W25 |
| Minggu dengan hari kerja | 2026-W25-7 |
| Tanggal ordinal | 2026-172 |

**ISO 8601** adalah standar internasional yang mencakup pertukaran dan komunikasi data terkait tanggal dan waktu di seluruh dunia. Standar ini dikelola oleh Organisasi Standardisasi Internasional (ISO) yang berbasis di Jenewa dan pertama kali diterbitkan pada tahun 1988, dengan pembaruan pada tahun 1991, 2000, 2004, dan 2019. Standar ini menyediakan metode yang terdefinisi dengan baik dan tidak ambigu untuk merepresentasikan tanggal dan waktu kalender dalam komunikasi di seluruh dunia, terutama untuk menghindari salah tafsir tanggal dan waktu numerik ketika data tersebut ditransfer antar negara dengan konvensi yang berbeda untuk menulis tanggal dan waktu numerik.

ISO 8601 berlaku untuk representasi-representasi dan format-format berikut: *tanggal*, dalam kalender Gregorius (termasuk kalender Gregorius proleptik); *waktu*, berdasarkan sistem ketepatan waktu 24 jam (dengan offset UTC opsional); *interval waktu*; dan kombinasinya. Standar ini tidak memberikan arti khusus untuk setiap elemen tanggal/waktu yang diwakili: arti elemen apa pun tergantung pada konteks penggunaannya. Tanggal dan waktu yang direpresentasikan tidak dapat menggunakan kata-kata yang tidak memiliki arti numerik tertentu dalam standar (dengan demikian tidak memasukkan nama-nama tahun dalam kalender Cina), atau yang tidak menggunakan karakter komputer (tidak memasukkan gambar atau suara).

Dalam representasi yang mematuhi standar pertukaran ISO 8601, tanggal dan waktu diatur sedemikian rupa sehingga satuan temporal terbesar (biasanya satu tahun) ditempatkan di sebelah kiri, dan setiap satuan yang lebih rendah secara berturut-turut ditempatkan di sebelah kanan satuan sebelumnya. Representasi harus ditulis dalam kombinasi angka Arab dan karakter komputer tertentu (seperti "-", ":", "T", "W", "Z") yang diberi arti khusus dalam standar. Deskriptor tanggal yang umum (atau bagian dari tanggal) seperti "Januari", "Kamis", atau "Hari Tahun Baru" tidak diperbolehkan dalam representasi pertukaran dalam standar.

## Sejarah

Edisi pertama standar ISO 8601 diterbitkan sebagai *ISO 8601:1988* pada tahun 1988. Standar ini menyatukan dan menggantikan sejumlah standar ISO yang lebih lama pada berbagai aspek notasi tanggal dan waktu: ISO 2014, ISO 2015, ISO 2711, ISO 3307, dan ISO 4031. Standar ini selanjutnya digantikan oleh edisi kedua *ISO 8601:2000* pada tahun 2000, oleh edisi ketiga *ISO 8601:2004* yang diterbitkan pada tanggal 1 Desember 2004, kemudian ditarik dan direvisi oleh *ISO 8601-1:2019* dan *ISO 8601-2:2019* pada 25 Februari 2019. ISO 8601 disiapkan oleh, dan berada di bawah tanggung jawab langsung Komite Teknis ISO TC 154.

ISO 2014, meskipun telah digantikan, adalah standar yang awalnya memperkenalkan notasi tanggal semua-numerik dalam urutan yang paling signifikan [YYYY]-[MM]-[DD]. Sistem penomoran minggu ISO diperkenalkan dalam ISO 2015, dan identifikasi hari berdasarkan tanggal ordinal awalnya didefinisikan dalam ISO 2711.

Dikeluarkan pada bulan Februari 2019, revisi keempat dari standar ISO 8601-1:2019 mewakili konten yang diperbarui dari standar ISO 8601:2004 sebelumnya, sedangkan ISO 8601-2:2019 yang baru mendefinisikan berbagai ekstensi seperti ketidakpastian dan bagian-bagian dari Extended Date/Time Format (EDTF).

Sejarah dari edisi yang dipublikasikan| Nama | Deskripsi |
| --- | --- |
| ISO 8601:1988 | Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktu |
| ISO 8601:1988/COR 1:1991 | Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktu — Koreksi Teknis 1 |
| ISO 8601:2000 | Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktu |
| ISO 8601:2004 | Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktu |
| ISO 8601-1:2019 | Tanggal dan waktu — Representasi untuk pertukaran informasi — Bagian 1: Aturan dasar |
| ISO 8601-2:2019 | Tanggal dan waktu — Representasi untuk pertukaran informasi — Bagian 2: Ekstensi |

## Prinsip-prinsip umum

* Nilai tanggal dan waktu diurutkan dari satuan waktu terbesar hingga terkecil: tahun, bulan (atau minggu), hari, jam, menit, detik, dan pecahan detik. Dengan demikian, urutan leksikografik dari representasi akan sesuai dengan urutan kronologis, kecuali untuk representasi tanggal yang melibatkan tahun negatif atau offset waktu. Hal ini memungkinkan tanggal diurutkan secara alami oleh, misalnya, sistem berkas.

* Setiap nilai tanggal dan waktu memiliki jumlah digit tetap, yang harus diisi dengan angka nol di depannya jika jumlah digit pada tanggal/waktu kurang dari jumlah digit tetap.
* Representasi dapat dilakukan dalam salah satu dari dua format: *format dasar* dengan jumlah pemisah minimal, atau *format yang diperluas* dengan pemisah yang ditambahkan untuk meningkatkan keterbacaan oleh manusia. Standar mencatat bahwa penggunaan "format dasar harus dihindari dalam teks biasa." Pemisah yang digunakan di antara nilai tanggal (tahun, bulan, minggu, dan hari) adalah tanda hubung, sedangkan titik dua digunakan sebagai pemisah antara nilai waktu (jam, menit, dan detik). Sebagai contoh, hari ke-6 dari bulan pertama tahun 2009 dapat ditulis sebagai 2009-01-06 dalam format yang diperluas atau hanya sebagai 20090106 dalam format dasar tanpa ambiguitas.
* Untuk mengurangi presisi, sejumlah nilai dapat dihilangkan dari representasi tanggal dan waktu, tetapi dalam urutan dari yang paling sedikit hingga yang paling signifikan. Misalnya, 2004-05 adalah tanggal ISO 8601 yang valid, yang menunjukkan Mei (bulan kelima) 2004. Format ini tidak akan pernah mewakili hari ke-5 dari bulan yang tidak ditentukan pada tahun 2004, juga tidak akan mewakili rentang waktu yang membentang dari tahun 2004 hingga 2005.
* Jika diperlukan untuk penerapan tertentu, standar mendukung penambahan pecahan desimal ke nilai waktu terkecil dalam representasi.

## Tanggal

|  |
| --- |
| **Juni 2026** |
| Mgu | Sn | Sl | Rb | Km | Jm | Sb | Mg |
| (23) | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| (24) | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| (25) | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| (26) | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| (27) | 29 | 30 | 1 | 2 | 3 | 4 | 5 |

Standar ini menggunakan kalender Gregorius, yang "berfungsi sebagai standar internasional untuk penggunaan sehari-hari."

ISO 8601:2004 menetapkan tanggal kalender referensi ke 20 Mei 1875 kalender Gregorian sebagai tanggal *Convention du Mètre* (Konvensi Meter) yang ditandatangani di Paris (tanggal referensi eksplisit telah dihapus dalam ISO 8601-1:2019). Namun, tanggal kalender ISO sebelum konvensi masih kompatibel dengan kalender Gregorian hingga pengenalan resmi kalender Gregorian pada 15 Oktober 1582.

Tanggal sebelumnya, dalam kalender Gregorius proleptik, dapat digunakan berdasarkan kesepakatan bersama dari mitra yang bertukar informasi. Standar menyatakan bahwa setiap tanggal harus berurutan, sehingga penggunaan kalender Julian akan bertentangan dengan standar (karena pada tanggal peralihan, tanggal tidak akan berurutan).

### Tahun

|  |
| --- |
| YYYY |
| ±YYYYY |

ISO 8601 menetapkan tahun ditulis (minimal) dalam empat digit [YYYY] untuk menghindari masalah tahun 2000. Oleh karena itu, standar ini mewakili tahun-tahun dari 0000 hingga 9999, tahun 0000 sama dengan 1 SM (Sebelum Masehi) dan yang lainnya Masehi. Namun, tahun-tahun sebelum 1583 tidak secara otomatis diizinkan oleh standar. Sebaliknya, "nilai dalam rentang [0000] hingga [1582] hanya akan digunakan dengan kesepakatan bersama dari mitra dalam pertukaran informasi."

Untuk mewakili tahun sebelum 0000 atau setelah 9999, standar juga mengizinkan perluasan representasi tahun tetapi hanya dengan kesepakatan sebelumnya antara pengirim dan penerima. Representasi tahun yang diperluas [±YYYYY] harus memiliki jumlah digit tahun ekstra yang disepakati di luar empat digit minimum, dan harus diawali dengan tanda + atau -, alih-alih notasi SM/M (atau AD/BC) yang lebih umum; dengan konvensi 1 SM diberi label +0000, 2 SM diberi label -0001, dan seterusnya.

### Tanggal kalender

|  |  |  |
| --- | --- | --- |
| YYYY-MM-DD | *atau* | YYYYMMDD |
| YYYY-MM | (*bukan* YYYYMM) |
| **Hanya diperbolehkan dalam versi 2000 (sudah usang):** |
| --MM-DD | *atau* | --MMDD |

Representasi tanggal kalender dalam bentuk yang ditunjukkan dalam tabel disamping. [YYYY] mengindikasikan tahun empat-digit, 0000 hingga 9999. [MM] mengindikasikan bulan dua-digit pada tahun itu, 01 sampai 12. [DD] mengindikasikan hari dua-digit pada bulan itu, 01 hingga 31. Misalnya, "5 April 1981" dapat direpresentasikan sebagai "1981-04-05" dalam *format yang diperluas* atau "19810405" dalam *format dasar*.

Standar ini juga memungkinkan tanggal kalender ditulis dengan presisi yang dikurangi. Misalnya, seseorang dapat menulis "1981-04" yang berarti "1981 April". Seseorang dapat dengan mudah menulis "1981" untuk merujuk pada tahun itu, "198" untuk merujuk pada dekade dari 1980 hingga 1989 inklusif, atau "19" untuk merujuk pada abad dari 1900 hingga 1999 inklusif. Meskipun standar mengizinkan format "YYYY-MM-DD" dan YYYYMMDD untuk representasi tanggal kalender lengkap, jika hari [DD] dihilangkan maka hanya format YYYY-MM yang diperbolehkan. Dengan melarang tanggal dalam bentuk YYYYMM, standar menghindari kebingungan/ambiguitas dengan representasi terpotong YYMMDD (masih sering digunakan). Versi 2000 juga mengizinkan penulisan pemotongan "--04-05" yang berarti "5 April" tetapi standar edisi 2004 tidak mengizinkan penghilangan tahun ketika ada bulan.

### Hari kerja

|  |  |  |
| --- | --- | --- |
| YYYY-Www | *or* | YYYYWww |
| YYYY-Www-D | *or* | YYYYWwwD |

Representasi tanggal minggu dalam format seperti yang ditunjukkan dalam tabel disamping. [YYYY] menunjukkan *tahun penomoran minggu ISO* yang sedikit berbeda dari tahun kalender Gregorius tradisional. [Www] adalah *nomor minggu* yang diawali dengan huruf *W*, dari W01 sampai W53. [D] adalah *nomor hari kerja*, dari 1 sampai 7, dimulai dengan hari Senin dan diakhiri dengan hari Minggu. Ada beberapa deskripsi yang saling setara dan kompatibel dari minggu 01:

* Minggu dengan hari kerja pertama di tahun awal (mengingat bahwa hari Sabtu, Minggu dan 1 Januari adalah hari non-kerja),
* Minggu dengan hari Kamis pertama tahun awal di dalamnya (definisi ISO formal),
* Minggu dengan tanggal 4 Januari di dalamnya,
* Minggu pertama dengan mayoritas (empat atau lebih) dari hari-harinya di tahun awal, dan
* Minggu yang dimulai dengan hari Senin dalam periode 29 Desember - 4 Januari.

Sebagai konsekuensinya, jika 1 Januari jatuh pada hari Senin, Selasa, Rabu atau Kamis, itu berada di minggu 01. Jika tanggal 1 Januari jatuh pada hari Jumat, Sabtu atau Minggu, itu adalah minggu ke-52 atau ke-53 dari tahun sebelumnya (tidak ada minggu ke 00). Tanggal 28 Desember selalu berada di minggu terakhir dalam satu tahun.

Nomor minggu dapat ditentukan dengan menghitung hari Kamis: minggu ke-12 berisi hari Kamis ke-12 dalam setahun.

Tahun penomoran minggu ISO dimulai pada hari pertama (Senin) pada minggu 01 dan berakhir pada hari Minggu sebelum tahun ISO yang baru (mengakibatkan tidak ada tumpang tindih atau celah). Penomoran ini dapat terdiri dari 52 atau 53 minggu penuh. Minggu ISO pertama dalam suatu tahun mungkin memiliki hingga tiga hari yang sebenarnya dalam tahun kalender Gregorian yang sedang berakhir; jika tiga, tiga hari ini adalah Senin, Selasa dan Rabu. Demikian pula, minggu ISO terakhir dalam suatu tahun mungkin memiliki hingga tiga hari yang sebenarnya dalam tahun kalender Gregorian sedang dimulai; jika tiga, mereka adalah Jumat, Sabtu, dan Minggu. Hari Kamis dari setiap minggu ISO selalu dalam tahun kalender Gregorian yang dilambangkan dengan tahun penomoran minggu ISO.

Contoh:

* Senin 29 Desember 2008 ditulis "2009-W01-1"

* Minggu 3 Januari 2010 ditulis "2009-W53-7"

### Tanggal ordinal

|  |  |  |
| --- | --- | --- |
| DD | *atau* | YYYYDDD |

*Tanggal ordinal* adalah bentuk sederhana untuk keadaan ketika sifat dari definisi minggu dan bulan lebih merupakan halangan daripada bantuan, misalnya, ketika membandingkan tanggal dari sistem kalender yang berbeda. Seperti yang direpresentasikan di atas, [YYYY] menunjukkan tahun dan [DDD] adalah "hari dalam setahun", dari 001 hingga 365 (366 dalam tahun kabisat). Misalnya, "1981-04-05" juga merupakan "1981-095".

Format ini digunakan pada sistem perangkat keras sederhana yang memiliki kebutuhan untuk sistem tanggal, namun menyertakan perangkat lunak penghitungan kalender penuh mungkin menghasilkan gangguan yang signifikan. Sistem ini kadang-kadang disebut sebagai "Tanggal Julian", tetapi ini dapat menyebabkan kebingungan/ambiguitas dengan hari Julian astronomi, hitungan berurutan dari jumlah hari sejak hari 0 dimulai 1 Januari 4713 SM siang Greenwich, pada kalender proleptik Julian (atau siang pada tanggal ISO -4713-11-24 yang menggunakan kalender proleptik Gregorian dengan tahun 0000).

## Waktu

|  |  |  |
| --- | --- | --- |
| Thh:mm:ss.sss | *atau* | Thhmmss.sss |
| Thh:mm:ss | *atau* | Thhmmss |
| Thh:mm | *atau* | Thhmm |
| Thh |  |  |

ISO 8601 menggunakan sistem 24-jam. Pada ISO 8601-1:2019, standar *format dasar* adalah T[hh][mm][ss] dan *format yang diperluas* adalah T[hh]:[mm]:[ss]. Versi-versi sebelumnya menghilangkan T (mewakili waktu) dalam kedua format. Pada kedua format ini:

* [hh] merujuk ke jam antara 00 dan 23.
* [mm] merujuk ke menit antara 00 dan 59.
* [ss] mengacu pada detik antara 00 dan 60 (angka 60 hanya digunakan untuk menunjukkan detik kabisat tambahan).

Jadi waktu dapat muncul sebagai "T134730" dalam format dasar atau "T13:47:30" dalam format yang diperluas. ISO 8601-1:2019 memungkinkan T dihilangkan dalam format yang diperluas, seperti dalam "13:47:30". Huruf T hanya dapat dihilangkan dalam format dasar ketika tidak ada risiko ambiguitas dengan ekspresi tanggal. Baik detik, atau menit dan detik, dapat dihilangkan dari format waktu dasar atau diperluas untuk menyingkat bentuk, tetapi akan mengurangi presisi. Dalam keadaan ini, format waktu presisi yang dihasilkan adalah:

* T[hh][mm] dalam format dasar atau [hh]:[mm] dalam format yang diperluas, ketika detik dihilangkan.

* T[hh], ketika detik dan menit dihilangkan.

Pada ISO 8601-1:2019, *tengah malam* hanya dapat disebut sebagai "00:00", sesuai dengan awal hari kalender. Versi standar sebelumnya mengizinkan "24:00" yang sesuai dengan akhir hari, tetapi ini secara eksplisit tidak diizinkan oleh revisi 2019.

Pecahan desimal dapat ditambahkan ke satuan waktu urutan terendah yang ada, dengan menggunakan koma atau titik sebagai pemisah antara satuan waktu dan pecahannya. Misalnya, untuk menunjukkan "14 jam, 30 setengah menit", jangan sertakan angka detik; nyatakan sebagai "14:30,5", "T1430,5", "14:30,5", atau "T1430,5". Tidak ada batasan pada jumlah tempat desimal untuk pecahan desimal. Namun, jumlah tempat desimal perlu disepakati oleh pihak-pihak yang berkomunikasi. Misalnya, di Microsoft SQL Server, ketepatan pecahan desimal untuk DATETIME sebesar 3, artinya, "yyyy-mm-ddThh:mm:ss[.mmm]".

### Penunjuk zona waktu

|  |
| --- |
| <waktu>Z |
| <waktu>±hh:mm |
| <waktu>±hhmm |
| <waktu>±hh |

Zona waktu dalam ISO 8601 dapat direpresentasikan sebagai: waktu lokal (dengan lokasi yang tidak ditentukan), sebagai UTC, atau sebagai offset dari UTC.

#### Waktu lokal (tanpa penunjuk lokasi)

Jika tidak ada informasi terkait UTC yang diberikan pada representasi waktu, waktu diasumsikan berada dalam waktu lokal. Meskipun *mungkin* aman untuk mengasumsikan waktu lokal ketika berkomunikasi dalam zona waktu yang sama, tetapi akan timbul ambiguitas ketika digunakan dalam berkomunikasi di zona waktu yang berbeda. Bahkan dalam satu zona waktu geografis, beberapa waktu lokal akan rancu jika wilayah tersebut menggunakan *waktu musim panas*. Representasi waktu yang menambahkan zona waktu (penunjuk zona) lebih disukai untuk menunjukkan waktu.

#### Waktu Universal Terkoordinasi (UTC)

Jika waktu dalam UTC, huruf Z ditambahkan tanpa spasi setelah representasi waktu. Z adalah penunjuk zona untuk offset UTC nol. Jam "09:30 UTC" dengan demikian akan direpresentasikan sebagai "09:30Z" atau "T0930Z". Jam "14:45:15 UTC" akan menjadi "14:45:15Z" atau "T144515Z".

Akhiran Z dalam representasi waktu ISO 8601 kadang-kadang disebut sebagai "waktu Zulu" atau "Zulu meridian" karena huruf yang sama digunakan untuk menunjuk zona waktu Zulu. Namun standar ACP 121 yang mendefinisikan daftar zona waktu militer, tidak menyebutkan UTC dan mendefinisikan "waktu Zulu" dari Greenwich Mean Time yang sebelumnya digunakan sebagai standar waktu sipil internasional. GMT tidak lagi terdefinisikan secara tepat oleh komunitas ilmiah dan dapat merujuk ke UTC atau UT1 tergantung konteksnya.

#### Offset waktu dari UTC

Offset UTC ditambahkan ke representasi waktu dengan cara yang sama dengan 'Z' di atas, dalam bentuk ±[hh]:[mm], ±[hh][mm], atau ±[hh]. Offset negatif menyatakan zona waktu yang berada di sebelah barat UTC±00:00, yakni daerah waktu sipil yang lebih cepat ketimbang UTC. Contoh penunjuk zona waktu untuk offset negatif adalah "−03:00","−0300", atau "−03". Di sisi lain, offset positif menyatakan zona waktu yang berada di UTC±00:00 atau di sebelah timurnya, yakni daerah waktu sipil yang sama atau lebih lambat dari UTC sehingga penunjuk zona akan berbentuk seperti "+02:00","+0200", or "+02". Beberapa contoh lainnya:

* "−05:00" untuk New York pada waktu standar (UTC-05:00)
* "−04:00" untuk New York pada *waktu musim panas* (UTC-04:00)
* "+00:00" (tapi bukan "−00:00") untuk London pada waktu standar (UTC±00:00)
* "+02:00" untuk Kairo (UTC+02:00)
* "+05:30" untuk Mumbai (UTC+05:30)
* "+14:00" untuk Kiribati (UTC+14:00)

Untuk merepresentasikan offset negatif, ISO 8601 mensyaratkan penggunaan tanda kurang, (−). Jika set karakter pertukaran tidak memiliki karakter tanda minus, maka tanda hubung perlu digunakan, (-). ASCII tidak memiliki tanda kurang, sehingga karakter tanda hubung (dengan kode desimal 45 atau heksadesimal 2D) akan digunakan. Jika set karakter memiliki tanda kurang, maka karakter itu harus digunakan. Unicode memiliki tanda kurang, dan kode karakternya adalah U+2212 (heksadesimal 2212); panggilan entitas karakter HTML adalah `&minus;`.

Waktu-waktu berikut ini semuanya mengacu pada saat yang sama: "18:30Z", "22:30+04", "1130-0700", dan "15:00-03:30". Huruf zona waktu laut tidak digunakan, kecuali huruf Z. Untuk menghitung waktu UTC, kita harus mengurangi offset dari waktu lokal, misalnya untuk "15:00-03:30" lakukan 15:00-(-03:30) untuk mendapatkan 18:30 UTC.

Pergeseran waktu nol, selain memiliki representasi khusus "Z", juga bisa dinyatakan secara numerik sebagai "+00:00", "+0000", atau "+00". Akan tetapi, tidak diizinkan untuk menyatakan offset ini secara numerik dengan tanda negatif, seperti "-00:00", "-0000", atau "-00". Bagian yang menentukan penggunaan tanda menyatakan bahwa tanda plus harus digunakan untuk nilai positif atau nol, dan tanda minus untuk nilai negatif. Berlawanan dengan aturan ini, RFC 3339, mengizinkan penggunaan "-00", yang memiliki arti sama dengan "+00", tetapi punya konotasi yang berbeda.

## Representasi gabungan tanggal dan waktu

|  |
| --- |
| <tanggal>T<waktu> |

Suatu saat dapat diwakili dengan menggabungkan representasi tanggal lengkap, huruf "T" sebagai pembatas, dan representasi waktu yang valid. Misalnya, "2007-04-05T14:30". Standar ISO 8601:2004 mengizinkan penghapusan karakter "T" dengan kesepakatan bersama seperti pada "200704051430", tetapi ketentuan ini dihapus dalam ISO 8601-1:2019. Memisahkan bagian tanggal dan waktu dengan karakter lain seperti spasi tidak diperbolehkan dalam ISO 8601, tetapi diperbolehkan dalam profil RFC 3339.

Jika penunjuk zona waktu diperlukan, representasi mengikuti tanggal dan waktu gabungan. Misalnya, "2007-04-05T14:30Z" atau "2007-04-05T12:30-02:00".

Format dasar atau diperluas dapat digunakan, dengan syarat penulisan tanggal dan waktu harus menggunakan format yang sama. Ekspresi tanggal bisa berupa kalender, minggu, atau ordinal, dan harus menggunakan representasi lengkap. Waktu dapat direpresentasikan menggunakan format presisi yang telah ditentukan.

## Durasi

|  |
| --- |
| PnYnMnDTnHnMnS |
| PnW |
| P<tanggal>T<waktu> |

Durasi mendefinisikan besar jeda waktu dalam interval waktu dan diwakili oleh format P[n]Y[n]M[n]DT[n]H[n]M[n]S atau P[n]W 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 P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]. Contohnya, durasi "P3Y6M4DT12H30M5S" dapat dituliskan sebagai "P0003-06-04T12:30:05". 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 2003-02-15T00:00:00Z/P2M berakhir dua bulan kalender kemudian, yakni pada 2003-04-15T00:00:00Z atau 59 hari kemudian

* interval 2003-07-15T00:00:00Z/P2Mberakhir dua bulan kalender kemudian, yakni pada 2003-09-15T00:00:00Z 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.

## Interval waktu

|  |
| --- |
| <mulai>/<akhir> |
| <mulai>/<durasi> |
| <durasi>/<akhir> |
| <durasi> |

Interval waktu adalah jeda waktu antara dua saat. Jumlah waktu jeda diekspresikan oleh durasi (seperti yang dijelaskan di bagian sebelumnya). Dua titik waktu (mulai dan akhir) dapat dinyatakan dengan representasi tanggal dan waktu gabungan atau hanya dengan representasi tanggal.

Ada empat cara untuk mengekspresikan interval waktu:

* Mulai dan akhir, seperti "2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"

* Mulai dan durasi, seperti "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"
* Durasi dan akhir, seperti "P1Y2M10DT2H30M/2008-05-11T15:30:00Z"
* Durasi saja, seperti "P1Y2M10DT2H30M", dengan informasi konteks tambahan

Dari cara-cara tersebut, tiga cara pertama membutuhkan dua nilai yang dipisahkan oleh penunjuk interval yang biasanya berupa *solidus* (lebih sering disebut sebagai garis miring "/"). Bagian 3.2.6 pada ISO 8601:-1:2019 mencatat bahwa "*Solidus* dapat diganti dengan tanda hubung ganda ["--"] dengan kesepakatan bersama dari mitra komunikasi", dan versi-versi sebelumnya menggunakan notasi seperti "2000--2002". Penggunaan tanda hubung ganda sebagai pengganti *solidus* memungkinkan penggunaan sebagai nama berkas di komputer; karena dalam sistem operasi yang umum, *solidus* adalah karakter yang dicadangkan dan tidak diizinkan dalam nama berkas.

Untuk ekspresi <mulai>/<akhir>, jika ada satuan waktu yang hilang dari nilai akhir, mereka diasumsikan sama dengan nilai waktu awal termasuk zona waktu. Fitur standar ini memungkinkan representasi yang lebih ringkas untuk interval waktu. Misalnya, tanggal pertemuan selama dua jam dengan waktu mulai dan selesai dapat dengan mudah ditampilkan sebagai "2007-12-14T13:30/15:30", dengan "/15:30" menyiratkan "/2007-12-14T15:30" (tanggal yang sama dengan waktu mulai), atau tanggal awal dan akhir periode penagihan bulanan sebagai "2008-02-15/03-14", dengan "/03-14" menyiratkan "/2008-03-14" (tahun yang sama dengan awal).

Jika presisi yang lebih besar diinginkan untuk mewakili interval waktu, maka lebih banyak satuan waktu dapat ditambahkan ke representasi. Interval yang dilambangkan "2007-11-13/15" dapat dimulai kapan saja pada 2007-11-13 dan berakhir kapan saja pada 2007-11-15, sedangkan "2007-11-13T09:00/15T17:00" mencakup waktu mulai dan akhir. Untuk secara eksplisit menyertakan semua tanggal mulai dan akhir, interval akan direpresentasikan sebagai "2007-11-13T00:00/16T00:00".

### Interval berulang

|  |
| --- |
| Rn/<interval> |
| R/<interval> |

Interval berulang didefinisikan standar dalam klausa "4.5 Interval waktu berulang". Representasi ini dibentuk dengan menambahkan "R[n]/" ke awal ekspresi interval, dengan R digunakan sebagai huruf untuk perulangan (*repeating*) dan [n] digantikan oleh jumlah pengulangan. Meninggalkan nilai untuk [n] atau menentukan nilai -1, mengartikan jumlah pengulangan yang tidak terbatas. Nilai 0 untuk [n] berarti interval tidak diulang.

Jika interval digunakan sebagai representasi (bentuk 1 dan 2 pada tabel representasi interval waktu), maka ini adalah awal dari interval yang berulang. Jika interval menandakan akhir tetapi bukan awal (bentuk ke-3), maka representasi adalah akhir dari interval yang berulang. Misalnya, untuk mengulang interval "P1Y2M10DT2H30M" lima kali yang dimulai pada "2008-03-01T13:00:00Z", gunakan "R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M".

## Representasi terpotong

ISO 8601:2000 mengizinkan pemotongan (berdasarkan kesepakatan), sehingga komponen utama dari tanggal atau waktu dihilangkan. Khususnya, ini memungkinkan tahun dua digit untuk digunakan, menghasilkan format ambigu YY-MM-DD dan YYMMDD. Ketentuan ini dihapus dalam ISO 8601:2004.

Representasi terpotong (dihilangkan dalam ISO8601:2004)| Jenis | Format dasar | Contoh dasar | Format yang diperluas | Contoh diperluas |
| --- | --- | --- | --- | --- |
| Tanggal tertentu dalam abad yang tersirat | YYMMDD | 851026 | YY-MM-DD | 85-10-26 |
| Tahun dan bulan tertentu dalam abad yang tersirat | -YYMM | -8510 | -YY-MM | -85-10 |
| Tahun tertentu dalam abad yang tersirat | -YY | -85 | — |
| Hari tertentu dalam satu bulan di tahun yang tersirat | --MMDD | --1026 | --MM-DD | --10-26 |
| Bulan tertentu dalam tahun yang tersirat | --MM | --10 | — |
| Hari tertentu dalam bulan yang tersirat | ---DD | ---26 |

Hanya jenis pertama (tanggal spesifik dalam abad yang tersirat) yang menghilangkan awalan tanda hubung `-` untuk abad. Semua format lainnya memiliki satu awalan tanda hubung per abad, tahun, dan bulan yang dihilangkan.

## Penerapan

Di Internet, World Wide Web Consortium (W3C) menggunakan standar IETF yang berdasar pada ISO 8601. Standar ini membatasi format tanggal dan waktu yang didukung untuk mengurangi kemungkinan kesalahan dan kompleksitas perangkat lunak. Spesifikasi yang sangat sederhana ini didasarkan pada draf RFC 3339 yang disebutkan di bawah ini.

ISO 8601 direferensikan oleh beberapa spesifikasi, tetapi berbagai pilihan yang ditawarkan ISO 8601 tidak selalu digunakan. Misalnya, berbagai standar panduan program elektronik untuk TV, radio digital, dll., menggunakan beberapa bentuk untuk mendeskripsikan waktu dan durasi. Spesifikasi metadata audio ID3 juga menggunakan subset ISO 8601.

### Adopsi sebagai standar nasional

|  |  |
| --- | --- |
| Afrika Selatan | SANS 8601:2009 |
| Amerika Serikat | ANSI INCITS 30-1997 (R2008) dan NIST FIPS PUB 4-2 |
| Australia | AS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021 (menggantikan AS ISO 8601-2007) |
| Austria | ÖNORM ISO 8601 (menggantikan ÖNORM EN 28601) |
| Belanda | NEN ISO 8601, NEN EN 28601 (1994), NEN 2772 |
| Belgia | NBN EN 28601 (1993) |
| Brazil | NBR 5892:2019 |
| Britania Raya | BS ISO 8601:2004, BS EN 28601 (1989-06-30) |
| China | GB/T 7408-2005 |
| Denmark | DS/ISO 8601:2005 (menggantikan DS/EN 28601) |
| Estonia | EVS 8:2008; EVS-ISO 8601:2011 |
| Finlandia | SFS-EN 28601 |
| Hungaria | MSZ ISO 8601:2003 |
| Islandia | IST EN 28601:1992 (usang) |
| India | IS 7900:2001 |
| Irlandia | IS/EN 28601:1993 |
| Italia | UNI EN 28601 (1993) |
| Jepang | JIS X 0301:2002 |
| Jerman | DIN ISO 8601:2006-09 (menggantikan DIN EN 28601:1993-02); terkait: DIN 5008:2011-04 (menggantikan DIN 5008:2005-05, DIN 5008:2001-11, DIN 5008:1996-05) |
| Kanada | CAN/CSA-Z234.4-89 (R2007) |
| Kolombia | NTC 1034:2014 Source ICONTEC (standar ini identik dengan ISO 8601:2004) Diarsipkan 2020-01-16 di Wayback Machine. |
| Korea Selatan | KS X ISO 8601 |
| Lithuania | LST ISO 8601:2006 (menggantikan LST ISO 8601:1997) |
| Luksemburg | ITM-EN 28601 |
| Meksiko | NMX-CH-150-IMNC-1999 |
| Norwegia | NS-ISO 8601 |
| Polandia | PN-EN 28601:2002 (usang sejak 2008. Tidak ada standar yang menggantikan.) |
| Portugal | NP EN 28601 |
| Prancis | NF Z69-200; NF EN 28601:1993-06-01 (dibatalkan) |
| Ceko | ČSN ISO 8601 (menggantikan ČSN EN 28601) |
| Russia | ГОСТ ИСО 8601-2001 (saat ini), ГОСТ 7.64-90 (usang) |
| Selandia Baru | AS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021 |
| *Standar Eropa* | EN ISO 8601, EN 28601:1992 (dibatalkan 7 Oktober 2011) |
| Spanyol | UNE EN 28601:1995 |
| Swedia | SS-ISO 8601:2011 (disepakati 2011-11-01, menggantikan SS-ISO 8601) |
| Swiss | SN ISO 8601:2005-08 (menggantikan SN-EN 28601:1994) |
| Taiwan | CNS 7648 |
| Thailand | TIS 1111:2535 (1992) |
| Turki | TS ISO 8601-1 dan TS ISO 8601-2 (disepakati sejak 2021-02-15) |
| Ukraina | ДСТУ ISO 8601:2010 |
| Yunani | ELOT EN 28601 |
| Vietnam | TCVN 6398-1:1998 |

## Referensi

## Pranala luar

* ISO's catalog entry for ISO 8601:2004
* The latest prototype of ISO 8601-1 (ISO/TC 154 N)
* The latest prototype of ISO 8601-2 (ISO/TC 154 N)
* Use international date format (ISO) – Quality Web Tips The World Wide Web Consortium (W3C)
* ISO 8601 di Curlie (dari DMOZ)
* ISO 8601 summary by Markus Kuhn
* Summary of 8601 by ISO di Wayback Machine (diarsipkan tanggal 2011-06-14)
* The Mathematics of the ISO 8601 Calendar
* W3C Specification about UTC Date and Time, based on ISO 8601:1988
* RFC 3339 vs ISO 8601 — Venn diagram illustrating the difference between the two standards.
* "ISO 8601-1:2019" (dalam bahasa Inggris). Diakses tanggal 2020-10-23.
* "ISO 8601-2:2019" (dalam bahasa Inggris). Diakses tanggal 2020-10-23.

**Gambaran umum implementasi ISO 8601 Implementation Around The World