ISO 8601

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.ISO 8601:2004[E] section 1 Scope 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 . 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 dipublikasikanNamaDeskripsiISO 8601:1988Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktuISO 8601:1988/COR 1:1991Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktu — Koreksi Teknis 1ISO 8601:2000Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktuISO 8601:2004Elemen data dan format pertukaran — Pertukaran informasi — Representasi tanggal dan waktuISO 8601-1:2019Tanggal dan waktu — Representasi untuk pertukaran informasi — Bagian 1: Aturan dasarISO 8601-2:2019Tanggal 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.ISO, FAQ: Numeric representation of Dates and Time  Standar mencatat bahwa penggunaan "format dasar harus dihindari dalam teks biasa."ISO 8601:2004 section 2.3.3 basic format 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  dalam format yang diperluas atau hanya sebagai  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,  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 
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  harus memiliki jumlah digit tahun ekstra yang disepakati di luar empat digit minimum, dan harus diawali dengan tanda + atau -,ISO 8601:2004 sections 3.4.2, 4.1.2.4 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.For example, see Annex B.1.1 of the standard.

 Tanggal kalender 
atauYYYYMMDD(bukan YYYYMM)Hanya diperbolehkan dalam versi 2000 (sudah usang):atau last in ISO 8601:2000, in use by , although removed in ISO 8601:2004
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,  dapat direpresentasikan sebagai  dalam format yang diperluas atau "19810405" dalam format dasar.

Standar ini juga memungkinkan tanggal kalender ditulis dengan presisi yang dikurangi. Misalnya, seseorang dapat menulis  yang berarti . 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  dan YYYYMMDD untuk representasi tanggal kalender lengkap, jika hari [DD] dihilangkan maka hanya format  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  yang berarti  tetapi standar edisi 2004 tidak mengizinkan penghilangan tahun ketika ada bulan.

 Hari kerja 

orYYYYWwworYYYYWwwD
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:

  ditulis 

  ditulis 

 Tanggal ordinal 
DDatauYYYYDDD
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,  juga merupakan .

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  siang Greenwich, pada kalender proleptik Julian (atau siang pada tanggal ISO  yang menggunakan kalender proleptik Gregorian dengan tahun 0000).

 Waktu 
atauatauThhmmssatauThhmmThh
ISO 8601 menggunakan sistem 24-jam. Pada ISO 8601-1:2019, standar format dasar adalah  dan format yang diperluas adalah . 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  dalam format yang diperluas. ISO 8601-1:2019 memungkinkan T dihilangkan dalam format yang diperluas, seperti dalam . 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:ISO 8601-1:2019 section 5.3.1.3 Representations with reduced precision

  dalam format dasar atau  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 , sesuai dengan awal hari kalender. Versi standar sebelumnya mengizinkan  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.ISO 8601-1:2019 section 3.1.3.9 Decimal sign Misalnya, untuk menunjukkan "14 jam, 30 setengah menit", jangan sertakan angka detik; nyatakan sebagai , , , atau . 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, .

 Penunjuk zona waktu 

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  dengan demikian akan direpresentasikan sebagai  atau "T0930Z". Jam  akan menjadi  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 , , atau . 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  (heksadesimal 2212); panggilan entitas karakter HTML adalah &minus;.

Waktu-waktu berikut ini semuanya mengacu pada saat yang sama: , , , dan . Huruf zona waktu laut tidak digunakan, kecuali huruf Z. Untuk menghitung waktu UTC, kita harus mengurangi offset dari waktu lokal, misalnya untuk  lakukan  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 tandaISO 8601-1:2019 section 3.2.4, ISO 8601:2004 section 3.4.2 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 

Suatu saat dapat diwakili dengan menggabungkan representasi tanggal lengkap, huruf "T" sebagai pembatas, dan representasi waktu yang valid. Misalnya, . 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,  atau .

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 
PnYnMnDTnHnMnSPnWP<tanggal>T<waktu>
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).ISO 8601:2004 section 4.4.3.3 Alternative format, ISO 8601-1:2019 section 5.5.2.4 Alternative format

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.

 Interval waktu 
<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 

 Mulai dan durasi, seperti 
 Durasi dan akhir, seperti 
 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 . 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 , 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 , dengan  menyiratkan  (tanggal yang sama dengan waktu mulai), atau tanggal awal dan akhir periode penagihan bulanan sebagai , dengan  menyiratkan  (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  dapat dimulai kapan saja pada  dan berakhir kapan saja pada , sedangkan  mencakup waktu mulai dan akhir. Untuk secara eksplisit menyertakan semua tanggal mulai dan akhir, interval akan direpresentasikan sebagai .

 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 , gunakan .

 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  dan YYMMDD. Ketentuan ini dihapus dalam ISO 8601:2004.
+Representasi terpotong (dihilangkan dalam ISO8601:2004)JenisFormat dasarContoh dasarFormat yang diperluasContoh diperluasTanggal tertentu dalam abad yang tersiratYYMMDD851026YY-MM-DD85-10-26Tahun dan bulan tertentu dalam abad yang tersirat -YYMM -8510 -YY-MM -85-10Tahun tertentu dalam abad yang tersirat -YY -85 colspan=2 Hari tertentu dalam satu bulan di tahun yang tersirat --MMDD --1026 --MM-DD --10-26Bulan tertentu dalam tahun yang tersirat --MM --10 rowspan=2 colspan=2 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.Note about Date and Time Formats to W3C from Reuters 

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 SelatanSANS 8601:2009Amerika SerikatANSI INCITS 30-1997 (R2008) dan NIST FIPS PUB 4-2AustraliaAS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021 (menggantikan AS ISO 8601-2007)AustriaÖNORM ISO 8601 (menggantikan ÖNORM EN 28601)BelandaNEN ISO 8601, NEN EN 28601 (1994), NEN 2772BelgiaNBN EN 28601 (1993)BrazilNBR 5892:2019Britania RayaBS ISO 8601:2004, BS EN 28601 (1989-06-30)ChinaGB/T 7408-2005DenmarkDS/ISO 8601:2005 (menggantikan DS/EN 28601)EstoniaEVS 8:2008; EVS-ISO 8601:2011FinlandiaSFS-EN 28601HungariaMSZ ISO 8601:2003IslandiaIST EN 28601:1992 (usang)IndiaIS 7900:2001IrlandiaIS/EN 28601:1993ItaliaUNI EN 28601 (1993)JepangJIS X 0301:2002JermanDIN 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)KanadaCAN/CSA-Z234.4-89 (R2007)National Standard of Canada, KolombiaNTC 1034:2014 Source ICONTEC (standar ini identik dengan ISO 8601:2004) Korea SelatanKS X ISO 8601LithuaniaLST ISO 8601:2006 (menggantikan LST ISO 8601:1997)LuksemburgITM-EN 28601MeksikoNMX-CH-150-IMNC-1999NorwegiaNS-ISO 8601PolandiaPN-EN 28601:2002 (usang sejak 2008. Tidak ada standar yang menggantikan.)PortugalNP EN 28601PrancisNF 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 BaruAS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021Standar EropaEN ISO 8601, EN 28601:1992 (dibatalkan 7 Oktober 2011)SpanyolUNE EN 28601:1995SwediaSS-ISO 8601:2011 (disepakati 2011-11-01, menggantikan SS-ISO 8601)SwissSN ISO 8601:2005-08 (menggantikan SN-EN 28601:1994)TaiwanCNS 7648ThailandTIS 1111:2535 (1992)TurkiTS ISO 8601-1 dan TS ISO 8601-2 (disepakati sejak 2021-02-15)UkrainaДСТУ ISO 8601:2010YunaniELOT EN 28601VietnamTCVN 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 summary by Markus Kuhn

 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.



Gambaran umum implementasi

 ISO 8601 Implementation Around The World  

Kategori:Waktu
#08601