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.

Tanggal dan waktu saat ini dinyatakan menurut ISO 8601 [refresh]
Tanggal2024-12-16
Tanggal dan waktu dalam UTC2024-12-16T04:50:17+00:00
2024-12-16T04:50:17Z
20241216T045017Z
Minggu2024-W51
Minggu dengan hari kerja2024-W51-1
Tanggal ordinal2024-351

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.[1] 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).[1]

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

sunting

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.[2] 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,[3] dan berada di bawah tanggung jawab langsung Komite Teknis ISO TC 154.[4]

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,[5][6] sedangkan ISO 8601-2:2019 yang baru mendefinisikan berbagai ekstensi seperti ketidakpastian dan bagian-bagian dari Extended Date/Time Format (EDTF).[7][8][9][10][11][12]

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

sunting
  • 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.[13][14] Standar mencatat bahwa penggunaan "format dasar harus dihindari dalam teks biasa."[15] 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

sunting
Desember 2024
Mgu Sn Sl Rb Km Jm Sb Mg
(48) 25 26 27 28 29 30 1
(49) 2 3 4 5 6 7 8
(50) 9 10 11 12 13 14 15
(51) 16 17 18 19 20 21 22
(52) 23 24 25 26 27 28 29
(1) 30 31 1 2 3 4 5

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

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).

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."[17]

Untuk mewakili tahun sebelum 0000 atau setelah 9999, standar juga mengizinkan perluasan representasi tahun tetapi hanya dengan kesepakatan sebelumnya antara pengirim dan penerima.[18] Representasi tahun yang diperluas YYYYY] harus memiliki jumlah digit tahun ekstra yang disepakati di luar empat digit minimum, dan harus diawali dengan tanda + atau -,[19] 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.[20]

Tanggal kalender

sunting
YYYY-MM-DD atau YYYYMMDD
YYYY-MM (bukan YYYYMM)
Hanya diperbolehkan dalam versi 2000 (sudah usang):
--MM-DD atau --MMDD[21]

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"[13] 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"[22] tetapi standar edisi 2004 tidak mengizinkan penghilangan tahun ketika ada bulan.

Hari kerja

sunting
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

sunting
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).

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, namun akan mengurangi presisi. Dalam keadaan ini, format waktu presisi yang dihasilkan adalah:[23]

  • 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.[24][25] 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]".[26]

Penunjuk zona waktu

sunting
<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)

sunting

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, namun 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)

sunting

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.[27] Namun standar ACP 121 yang mendefinisikan daftar zona waktu militer, tidak menyebutkan UTC dan mendefinisikan "waktu Zulu" dari Greenwich Mean Time[28] 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.[29]

Offset waktu dari UTC

sunting

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, (-).[30] 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[31] menyatakan bahwa tanda plus harus digunakan untuk nilai positif atau nol, dan tanda minus untuk nilai negatif. Berlawanan dengan aturan ini, RFC 3339,[32] mengizinkan penggunaan "-00", yang memiliki arti sama dengan "+00", namun punya konotasi yang berbeda.[33]

Representasi gabungan tanggal dan waktu

sunting
<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",[34] 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.[35]

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

sunting
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,[36] 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).[37]

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.[38][39]

Interval waktu

sunting
<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".[40] Penggunaan tanda hubung ganda sebagai pengganti solidus memungkinkan penggunaan sebagai nama berkas di komputer;[41] 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

sunting
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

sunting

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

sunting

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.[42]

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.[43]

Adopsi sebagai standar nasional

sunting
Afrika Selatan SANS 8601:2009[44]
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)[45]
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[46]
Norwegia NS-ISO 8601
Polandia PN-EN 28601:2002 (usang sejak 2008. Tidak ada standar yang menggantikan.[47])
Portugal NP EN 28601
Prancis NF Z69-200; NF EN 28601:1993-06-01 (dibatalkan)
Republik 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

sunting
  1. ^ a b ISO 8601:2004[E] section 1 Scope
  2. ^ ISO 8601:2004(E), ISO, 2004-12-01, Lampiran A: ... Dari konsep tersebut, representasi dari semua nilai tanggal dan waktu lainnya diturunkan secara logis; dengan demikian, ISO 2014, ISO 3307 dan ISO 4031 telah digantikan. ... Identifikasi tanggal tertentu melalui tanggal ordinal (ISO 2711) dan melalui sistem penomoran minggu (ISO 2015) adalah metode alternatif yang juga dapat dicakup oleh konsep dasar Standar Internasional ini; dengan demikian, ISO 2015 dan ISO 2711 sekarang telah digantikan. 
  3. ^ ISO 8601:2004(E). ISO. 2004-12-01. p. iv Foreword. 
  4. ^ "TC 154 Processes, data elements and documents in commerce, industry and administration". Technical committees. ISO. Diarsipkan dari versi asli tanggal 2016-05-25. Diakses tanggal 2014-08-16. 
  5. ^ "ISO/DIS 8601-1:2016-10-26" (PDF). Library of Congress. Diarsipkan dari versi asli (PDF) tanggal 2017-10-19. 
  6. ^ "German draft E DIN ISO 8601-1:2017-02 Datenelemente und Austauschformate - Informationsaustausch - Darstellung von Datum und Uhrzeit - Teil 1: Grundlegende Regeln (ISO/DIS 8601-1:2016)". DIN-Normenausschuss Informationstechnik und Anwendungen (NIA). Diarsipkan dari versi asli tanggal 2017-10-20. Diakses tanggal 2017-10-19. 
  7. ^ "Extended Date/Time Format (EDTF) Specification". The Library of Congress. 2019-10-08. Diarsipkan dari versi asli tanggal 2020-03-07. Diakses tanggal 2020-03-07. 
  8. ^ "Extended Date/Time Format (EDTF) Background". The Library of Congress. 2019-10-08. Diarsipkan dari versi asli tanggal 2020-03-07. Diakses tanggal 2020-03-07. 
  9. ^ "Extended Date/Time Format (EDTF) 1.0 2012/2014". Draft Submission. The Library of Congress. Diarsipkan dari versi asli tanggal 2017-07-15. Diakses tanggal 2017-07-15. 
  10. ^ "ISO/WD 8601-2:2016-02-16" (PDF). Library of Congress. Diarsipkan dari versi asli (PDF) tanggal 2017-10-19. 
  11. ^ "ISO/DIS 8601-2:2016-10-26" (PDF). Library of Congress. Diarsipkan dari versi asli (PDF) tanggal 2017-10-20. 
  12. ^ "German draft E DIN ISO 8601-2:2017-02 Datenelemente und Austauschformate - Informationsaustausch - Darstellung von Datum und Uhrzeit - Teil 2: Erweiterungen (ISO/DIS 8601-2:2016)". DIN-Normenausschuss Informationstechnik und Anwendungen (NIA). Diarsipkan dari versi asli tanggal 2017-10-19. Diakses tanggal 2017-10-19. 
  13. ^ a b ISO, FAQ: Numeric representation of Dates and Time Diarsipkan 2013-03-08 di Wayback Machine.
  14. ^ "Date and Time Formats". w3.org. Diarsipkan dari versi asli tanggal 10 May 2021. Diakses tanggal 11 May 2021. 
  15. ^ ISO 8601:2004 section 2.3.3 basic format
  16. ^ Doggett, L. E. (1992). "Calendars". Dalam P. K. Seidelmann. Explanatory Supplement to the Astronomical Almanac. Sausalito, California: University Science Books. hlm. 580. ISBN 0-935702-68-7. Diarsipkan dari versi asli tanggal 2004-04-01. The Gregorian calendar today serves as an international standard for civil use. 
  17. ^ ISO 8601:2004(E). ISO. 2004-12-01. section 4.1.2.1 General. 
  18. ^ ISO 8601:2004(E). ISO. 2004-12-01. 3.5 Expansion ... By mutual agreement of the partners in information interchange, it is permitted to expand the component identifying the calendar year, which is otherwise limited to four digits. This enables reference to dates and times in calendar years outside the range supported by complete representations, i.e. before the start of the year [0000] or after the end of the year [9999]. 
  19. ^ ISO 8601:2004 sections 3.4.2, 4.1.2.4
  20. ^ For example, see Annex B.1.1 of the standard.
  21. ^ last in ISO 8601:2000, in use by Perreault, S. (August 2011). "RFC 6350 - vCard Format Specification". IETF. doi:10.17487/RFC6350. Diarsipkan dari versi asli tanggal 2016-05-31. Diakses tanggal 2021-01-21. Truncated representation, as specified in [ISO.8601.2000], Sections 5.2.1.3 d), e), and f), is permitted.  , although removed in ISO 8601:2004
  22. ^ Perreault, Simon (August 2011). "RFC 6350 - vCard Format Specification". IETF. §4.3.1. DATE. doi:10.17487/RFC6350. Diarsipkan dari versi asli tanggal 2016-05-31. Diakses tanggal 2016-06-29. Truncated representation, as specified in [ISO.8601.2000], Sections 5.2.1.3 d), e), and f), is permitted. 
  23. ^ ISO 8601-1:2019 section 5.3.1.3 Representations with reduced precision
  24. ^ ISO 8601-1:2019 section 3.1.3.9 Decimal sign
  25. ^ ISO 8601:2004(E), ISO, 2004-12-01, 4.2.2.4 ... the decimal fraction shall be divided from the integer part by the decimal sign specified in ISO 31-0, i.e. the comma [,] or full stop [.]. Of these, the comma is the preferred sign. 
  26. ^ "ISO 8601 Format". TechNet. Microsoft Docs. Diarsipkan dari versi asli tanggal 2021-10-20. Diakses tanggal 2021-10-20. 
  27. ^ Markus Kuhn (2020-06-16). "A summary of the international standard date and time notation". Diarsipkan dari versi asli tanggal 2022-10-05. Diakses tanggal 2022-10-05. 
  28. ^ "COMMUNICATION INSTRUCTIONS GENERAL ACP 121(I)" (PDF). Combined Communications Electronics Board. October 2010. Diarsipkan dari versi asli (PDF) tanggal 2018-01-16. Diakses tanggal 2018-01-15. 
  29. ^ McCarthy, Dennis D.; Seidelmann, Kenneth P. (2009). Time: From Earth Rotation to Atomic Physics. Weinheim: Wiley-VCH Verlag GmbH & Co. KGaA. hlm. 10. ISBN 978-3-527-40780-4. 
  30. ^ Templat:Cite ISO standard
  31. ^ ISO 8601-1:2019 section 3.2.4, ISO 8601:2004 section 3.4.2
  32. ^ Klyne, G.; Newman, C. (2002-07). "Date and Time on the Internet: Timestamps" (dalam bahasa Inggris). doi:10.17487/RFC3339. ISSN 2070-1721. 
  33. ^ Newman, Chris (July 2002). Klyne, Graham, ed. Date and Time on the Internet: Timestamps. IETF Tools Pages (dalam bahasa Inggris). Reston, VA: IETF Secretariat, Corp. for National Research Initiatives. hlm. 4. doi:10.17487/RFC3339. OCLC 43315042. Diarsipkan dari versi asli tanggal 20 January 2021. Diakses tanggal 1 February 2021. Unknown Local Offset Convention: If the time in UTC is known, but the offset to local time is unknown, this can be represented with an offset of "-00:00". This differs semantically from an offset of "Z" or "+00:00", which imply that UTC is the preferred reference point for the specified time. RFC2822 [IMAIL-UPDATE] describes a similar convention for email 
  34. ^ ISO 8601:2004(E): Data elements and interchange formats — Information interchange — Representation of dates and times. ISO. 2004-12-01. 4.3.2 NOTE: By mutual agreement of the partners in information interchange, the character [T] may be omitted in applications where there is no risk of confusing a date and time of day representation with others defined in this International Standard. 
  35. ^ G. Klyne; C. Newman (July 2002). "Date and Time on the Internet: Timestamps". IETF. §5.6. Internet Date/Time Format. doi:10.17487/RFC3339. RFC 3339 . 5.6. NOTE: ISO 8601 defines date and time separated by "T". Applications using this syntax may choose, for the sake of readability, to specify a full-date and full-time separated by (say) a space character. 
  36. ^ "Data elements and interchange formats — Information interchange - Representation of dates and times — Part 1: Basic rules" (PDF). The Library of Congress. hlm. 23. Diarsipkan dari versi asli (PDF) tanggal 2021-03-12. Diakses tanggal 2021-07-06. b) If necessary for a particular application, the lowest order components may have a decimal fraction. 
  37. ^ ISO 8601:2004 section 4.4.3.3 Alternative format, ISO 8601-1:2019 section 5.5.2.4 Alternative format
  38. ^ "Amazon Alexa Duration". Amazon Developer. Amazon.com. Diarsipkan dari versi asli tanggal 2017-10-14. Diakses tanggal 2017-10-07. 
  39. ^ "Java 8 Class Duration". Java Platform Standard Edition 8. Oracle. Diarsipkan dari versi asli tanggal 2017-10-14. Diakses tanggal 2017-10-07. 
  40. ^ "Info on ISO 8601, the date and time representation standard". Cs.tut.fi. Diarsipkan dari versi asli tanggal 2017-10-14. Diakses tanggal 2012-08-29. 
  41. ^ "ISO 8601 - Getting with the Times (and Dates)". Hydrogold. 2012-01-01. Diarsipkan dari versi asli tanggal 2014-01-25. Diakses tanggal 2013-08-13. 
  42. ^ Note about Date and Time Formats to W3C from Reuters Diarsipkan 2011-08-24 di Wayback Machine.
  43. ^ Nilsson, M. (2000-11-01). "ID3 tag version 2.4.0 - Main Structure". id3.org. hlm. §4. Diarsipkan dari versi asli tanggal 2015-03-09. Diakses tanggal 2009-09-27. 
  44. ^ "SANS 8601:2009 (Ed. 2.00)". SABS Webstore. Diarsipkan dari versi asli tanggal 2021-11-24. Diakses tanggal 2021-11-24. 
  45. ^ National Standard of Canada, "CAN/CSA-Z234.4-89 (R2007): All-Numeric Dates and Times". Standards Council of Canada (dalam bahasa Inggris). 31 December 1989. Diarsipkan dari versi asli tanggal 30 March 2018. Diakses tanggal 29 March 2018. 
  46. ^ "DOF - Diario Oficial de la Federación". Diarsipkan dari versi asli tanggal 2021-11-10. Diakses tanggal 2021-11-10. 
  47. ^ Czubla, Albin (2020-12-04). "Główny Urząd Miar" (PDF). Główny Urząd Miar. Diarsipkan dari versi asli (PDF) tanggal 2020-12-04. Diakses tanggal 2020-12-04. 

Pranala luar

sunting

Gambaran umum implementasi