ISO 8601(時刻表記)

ISO 8601は日時表記を規定します。世界中の日時を時差を加味して一意的に表現します。

日時表記

基本形式(基本表記・標準表記)と拡張形式(拡張表記)の2種類の表記方法があり、いずれも日付と時刻をT記号で区切る。

基本形式

基本形式は、日付と時刻の表記内には区切りを入れない。例えば、いま、年=YYYY(4桁の数字。グレゴリオ暦)、月=MM(2桁の数字。以下同様)、日=DD、時=hh、分=mm、秒=ssで協定世界時(UTC)よりも09時間00分早い地域であると仮定すると、基本形式では、 YYYYMMDDThhmmss+0900 となる。

(例) 20210127T210204+0900

拡張形式

拡張形式は、日付と時刻の表記内に区切りを入れ視認性を良好にした表記方法である。まず、年を表す4桁の数字の直後のハイフン (-) 区切りで、欧米等のローカルな年月日表記ではないことを明らかにする。続く月と日の表記をハイフン (-) で区切る。基本形式と同様に日付と時刻をT記号で区切り、時分秒の表記はコロン (:) で区切る。末尾にUTCであればZ記号、他のタイムゾーンならばプラス記号 (+) あるいはマイナス記号 (-) で区切って続ける。拡張形式では、上記例の場合は、YYYY-MM-DDThh:mm:ss+09:00 となる。

(例) 2021-01-27T21:02:04+09:00

日付と時刻の組合せにおいて基本形式と拡張形式との混在は許されず、どちらかに統一されていなければならない。また、協定世界時(UTC)に関しては以下の規定がある。

  • 協定世界時(UTC)はグリニッジ標準時(GMT)と同義である
  • 協定世界時(UTC)で日時を表現する場合は時差表記の代わりに「20210127T210204Z」と「Z」を記載する

    継続時間

    継続時間は、ある期間中に含まれる時間の合計を定義し、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は、各日付と時間の要素の指定子であり、他の文字には置き換えない。

    P は期間を表す指定子(period を表す)であり、継続時間表現の先頭に置かれる。
    Y は年の指定子であり、年を表す数値の後に置かれる。
    M は月の指定子であり、月を表す数値の後に置かれる。
    W は週の指定子であり、週を表す数値の後に置かれる。
    D は日の指定子であり、日を表す数値の後に置かれる。
    T 時間の指定子であり、継続時間表現の時間の部分の前に置く。
    H は時間の指定子であり、時間を表す数値の後に置かれる。
    M は分の指定子であり、分を表す数値の後に置かれる。
    S は秒の指定子であり、秒を表す数値の後に置かれる。

    たとえば、P3Y6M4DT12H30M5Sは、「3年、6ヶ月、4日、12時間、30分、5秒」という継続時間を表現している。

    期間

    期間(time interval[16])は”開始日時/終了日時”で表記される。それぞれの日時は上述の日付あるいはそれに付属した時刻によって表記され、その2つの時刻の間に半角スラッシュ (“/”) を挿入する。

  • 例:
    • 2004-04-01/2005-07-01
        2004年4月1日から2005年7月1日まで
    • 2004-04-01T12:00:00+09:00/2007-08-31T15:00:00+09:00
        日本時間 (JST) で、2004年4月1日12時0分0秒から2007年8月31日15時0分0秒まで

    なお期間の明示にあたっては、開始日時と終了日時で年あるいは年と月が同一である場合、それを省略することができる。

  • 年が同一の場合の例:
    • 2004-04-01/07-01
      2004年の4月1日から7月1日まで
  • 年と月が同一の場合の例:
    • 2004-04-01/15
      2004年4月の1日から15日まで