ISO 8601
ISO 8601は日付と時刻の表記に関する国際規格。最新版は2004年に発行されたISO 8601:2004 で、古い版としてISO 8601:2000 、ISO 8601:1988 があった。いずれも正式な題は "Data elements and interchange formats – Information interchange – Representation of dates and times" である。
ISO 8601の改定版として、ISO/DIS 8601:2016が提案されており、2018年に正式規格となる予定である。新規格はISO 8601-1（基本）とISO 8601-2（拡張）との2分冊となる。
基本形式（基本表記・標準表記）と拡張形式（拡張表記）の2種類の表記方法があり、いずれも日付と時刻をT記号で区切る。
基本形式は、日付と時刻の表記内には区切りを入れない。例えば、いま、年＝YYYY（4桁の数字。グレゴリオ暦）、月＝MM（2桁の数字。以下同様）、日＝DD、時＝hh、分＝mm、秒＝ssで協定世界時（UTC）よりも09時間00分ほど早い地域であると仮定すると、基本形式では、 YYYYMMDDThhmmss+0900 となる。
拡張形式は、日付と時刻の表記内に区切りを入れ視認性を良好にした表記方法である。まず、年を表す4桁の数字の直後のハイフン (-) 区切りで、欧米等のローカルな年月日表記ではないことを明らかにする。続く月と日の表記をハイフン (-) で区切る。基本形式と同様に日付と時刻をT記号で区切り、時分秒の表記はコロン (:) で区切る。末尾にUTCであればZ記号、他のタイムゾーンならばプラス記号 (+) あるいはマイナス記号 (-) で区切って続ける。拡張形式では、上記例の場合は、YYYY-MM-DDThh:mm:ss+09:00 となる。
日付と時刻の組合せにおいて基本形式と拡張形式との混在は許されず、どちらかに統一されていなければならない。
グレゴリオ暦による年月日は、パリにおけるメートル条約の調印年月日を1875年5月20日とすることで規定されている。
曜日は、2000年1月1日を土曜日とすることで規定されている。
月日、時分秒の起点の指定は特にない。
ISO 8601 では日付の指定の仕方に、年と月と日を指定する方法、年と年内の日の番号を指定する方法、年と週と曜日を指定する方法の3つがある（下記に詳説）。
日付の表記にはグレゴリオ暦を用い、これはグレゴリオ暦が導入された1582年10月15日以前にも適用される。ただし、0000年から1582年の範囲は、事前に通信の送信側と受信側との間での合意がある場合にのみ使うことができる。一般（たとえばJavaライブラリ）には1582年以前の日付表現はユリウス暦と解釈されるが、ISO 8601 にはそのような措置はない。そのため、それらの日付表現をこのISO準拠にするにはグレゴリオ暦への換算が必要である。
年は（基本形式の場合でも拡張形式の場合でも）4桁の数字で表記される。月の表記は 01 から 12 の値を取り、それぞれ1月から12月を表す。
YYYYMMDD（基本形式）あるいは YYYY-MM-DD（拡張形式） のいずれかで表記される。「年」が最初に来ていることを明らかにするため、また、視認性を良くするため、この拡張表記が頻用されている。
YYYY-MM のみで-DD を省くことも、 YYYY のみで MMDD(-MM-DD) を省くことも可能であり、その場合、前者は年月のみを、後者は年のみを表す。ただし、YYYYMM というような‐（ハイフン）無しの数字6桁のみの表記は認められていない。
YYYY-DDD と表記する。
DDD は、年内の日の番号である。1月1日は 001 と表記し、12月31日は平年では 365 、閏年では 366 になる。
この記法では、年が、通常の場合の年とは異なる年になる場合がある。POSIXのstrftimeにある%Gはこの記法の年を表示する。JIS X 0301にも具体例の例示がある。
YYYY-"W"ww-D と表記する。ww は年内の暦週の番号で、年の第1週は 01、最終週は 52 または 53 となる。
この記法では、ある年における「最初の木曜日を含む週が、その年の第1週である。」と規定されている。時刻の表記には hh":"mm":"ss の形式が用いられる。hh は時で 00 から 24 の値をとる。mm は分で 00 から 59 の値をとる。ss は秒で 00 から 59 及び閏秒に 60 の値をとる。ss, mm":"ss の部分は省略可能で hh":"mm, hhの形式も使用可能。
最も下の要素では小数値を用いることができる。小数点にはコンマ (,) が推奨されており、ピリオド (.) を用いることもできる。
日の変わり目の表し方は2通り以上あり、00:00 と 24:00, 24:00:00 などで表すことができるが、00:00は日の初めで 24:00 は日の終わりを表す（2004-03-31T24:00Z は 2004-04-01T00:00Z と同じ時刻を表す）。
T  のように日付と時刻の間にTを挟んで表記する。（例:2004-04-01T00:00:01+09:00＝2004年04月01日00時00分01秒（正午）（JST）
時刻の後ろに Z を添えることで協定世界時（UTC）での時刻をそのまま示すことができる。
UTCより先に進んでいる時間帯の場合はプラス(+)、UTCより後に遅れている時間帯の場合はマイナス(-)として、時刻の後ろに ±"hh":"mm, ±"hhmm, ±"hh" のいずれかを添えることにより、その時間帯（タイムゾーン）でのローカル時刻を示すことができる。
継続時間は、ある期間中に含まれる時間の合計を定義し、P[n]Y[n]M[n]DT[n]H[n]M[n]S、または、右に示すように、P[n]Wの形式で表される。この表記において、[n]は、それぞれの日付と時間の要素に対応する値と置換する。先頭の0は必須ではないが、各要素の数字の最大文字数は通信者間で取り決める必要がある。大文字のP、Y、M、W、D、T、H、M、およびSは、各日付と時間の要素の指定子であり、他の文字には置き換えない。たとえば、P3Y6M4DT12H30M5Sは、「3年、6ヶ月、4日、12時間、30分、5秒」という継続時間を表現している。
指定子を含む日付と時間の要素は、その値が0の時には省略することができる。より低い順序の要素も制度を削減するために省略することができる。たとえば、P23DT23HとP4Yは、ともに許される継続期間の表現である。しかし、少なくとも1つの要素は表さなければならないため、Pは0秒という継続時間の表現としては不正である。しかし、PT0SやP0Dは、ともに有効であり、同じ継続時間を表現している。
曖昧さを解消するため、P1Mは1ヶ月の継続時間であり、PT1Mは1分の継続時間である（時間指定子のTが時間の値の前に置かれていることに注意）。使用される最小の値には、半年を表現するP0.5Yのように、小数を含むこともできる。P0,5YやP0.5Yのように、小数点はカンマとフルストップのいずれも使用できる。標準は、下に述べる例外を除いて、日付と時間の継続時間表現において「繰り上がり点」を越えることを禁止してはいない。したがって、PT36Hという表現をP1DT12Hと同じ継続時間を表現するために使用することも可能である。ただし、サマータイムを切り替えた時にPT36HはP1DT12Hと同じではなくなることに留意する必要がある。
上記の表現の他に、通信者間の合意の元、日付と時間の表現に基づく継続時間のフォーマットを使用することも許されている。基本のフォーマットとしては、PYYYYMMDDThhmmss、または、拡張フォーマットとしては、が使用できる。しかし、日付と時間のそれぞれの値は、モジュロ演算における法を超えることは許されない（たとえば、月の値として13、時間の値として25などは許されない）。
標準では、継続時間は、次のセクションで説明する時間の期間の一部として記述されているものの、継続時間のフォーマットは、Java 8のDurationクラスなど、時間の期間とは独立したものとして広く使用されている。
特定の期間を表す場合、開始日時/終了日時で表記される。それぞれの日時は上述の日付あるいはそれに付属した時刻によって表記され、その2つの時刻の間に半角スラッシュ ("/") を挿入する。
なお期間の明示にあたっては、開始日時と終了日時で年あるいは年と月が同一である場合、それを省略することができる。日本工業規格 JIS X 0301（旧JIS C 6262）があり、ISO 8601:2000 の翻訳がJIS X 0301:2002 「情報交換のためのデータ要素及び交換形式 ― 日付及び時刻の表記」（英語題はISO 8601に同じ）に収められている。
規格書では、和暦（規格書では「元号による日付」）が規定されている。
元号は「明」「大」「昭」「平」または「M」「T」「S」「H」、あるいはメタ文字「N」で表される。慶応など明治以前の元号についての規定はない。
日付は、基本形式「YY.MM.DD」または拡張形式「NYY.MM.DD」で表される（元号での年も「YY」である）。年月日のセパレータはハイフンではなくピリオドで、基本形式でも省略されない。
グレゴリオ暦に改暦されるM06.01.01（1873年1月1日）以前の和暦は、旧暦（規格書では「太陰太陽暦」）であり、この規格の適用範囲外である。M01.01.01からM05.12.02までは1868年1月25日から1872年12月31日までを表すとされており、（ユリウス暦時代の西暦日付の扱いのように）グレゴリオ暦として解釈されることはない。なお、年初改元に基づき、明治の初日はM01.01.01である。
CNS 7648「資料元及交換格式・資訊交換・日期及時間的表示法」では、民国紀元が「R.O.C.」で表される。言語はすべて英語表記