デジタルデータのやり取りにおいて、日付や時刻の書き方が国やシステムによって異なると、深刻な誤解やエラーの原因となります。こうした混乱を防ぐために策定されたのが、国際標準化機構(ISO)によるISO 8601です。この規格は、日付と時刻の表記方法を統一し、言語や文化の壁を越えて正確に情報を伝達することを目的としています。
Key Facts
- 基本構造:大きな単位(年)から小さな単位(秒)へと順に表記する。
- 2つの形式:可読性を重視した「拡張形式」と、データ量を抑えた「基本形式」がある。
- UTCの利用:協定世界時(UTC)を基準とし、末尾に「Z」を付けることで識別する。
- 最新版:2019年に発行されたISO 8601-1およびISO 8601-2が現在の基準である。
- 汎用性:日本(JIS X 0301)を含む世界各国の国家規格として採用されている。
ISO 8601の歴史と変遷
ISO 8601の初版は1988年に公開されました。それ以前に存在していた週番号の表記(ISO 2015)や、通日(Ordinal date)の表記(ISO 2711)、時刻の表記(ISO 3307)といった複数の規格を統合し、より包括的なルールとして再定義したものです。
その後、2000年版や2004年版を経て、2019年には大幅な改訂が行われました。最新の2019年版では、基本ルールを定めた「パート1(ISO 8601-1)」と、不確実な日付などの拡張定義を扱う「パート2(ISO 8601-2)」の2部構成となっており、より柔軟な運用が可能になっています。
表記の基本原則
ISO 8601の最大の特徴は、「大きな単位から小さな単位へ」という一貫した順序で記述することです。これにより、並べ替え(ソート)が容易になり、機械的な処理に適した形式となります。
拡張形式と基本形式
人間にとっての読みやすさを優先したものが「拡張形式」であり、ハイフン(-)やコロン(:)などの区切り文字を使用します。一方、区切り文字を省いたものが「基本形式」です。規格では、プレーンテキストで記述する場合は、誤解を避けるために拡張形式の使用が推奨されています。
精度の調整
必要に応じて、精度の低い情報を省略することが可能です。ただし、省略は必ず「小さい単位から」行わなければなりません。例えば、「2004-05」という表記は2004年5月を指しますが、月を省略して「2004-01」のように日だけを残すことはできません。
具体的な表記ルール
日付の表現
カレンダー日付は「YYYY-MM-DD」の形式で記述します。YYYYは4桁の年、MMは2桁の月、DDは2桁の日を表します。また、1年を1〜366日で数える「通日(Ordinal date)」や、週番号を用いた「週日付(Week date)」という表記法も定義されています。
時刻とタイムゾーン
時刻は24時間制を採用し、「hh:mm:ss」の形式で表記します。日付と時刻を組み合わせて記述する場合は、その間に「T」という文字を挿入します(例:2007-04-05T14:30)。
タイムゾーンの指定には、協定世界時(UTC)を示す「Z」を末尾に付けるか、UTCからの時差を「±hh:mm」の形式で記述します。例えば、日本標準時(JST)はUTCより9時間進んでいるため、「+09:00」と表記します。
期間と時間間隔
ある時点から別の時点までの「期間(Duration)」は、「P」で始まる特殊な形式(例:P1Y2M10DT2H30M)で表現されます。また、開始点と終了点をスラッシュ(/)で区切ることで「時間間隔(Time interval)」を示すことができます。
規格のまとめ
| 項目 | 拡張形式(推奨) | 基本形式 | 例 |
|---|---|---|---|
| カレンダー日付 | YYYY-MM-DD | YYYYMMDD | 2026-08-13 |
| 時刻 | hh:mm:ss | hhmmss | 05:17:24 |
| 日時結合 | YYYY-MM-DDThh:mm:ss | YYYYMMDDThhmmss | 2026-08-13T05:17:24 |
| UTC指定 | (日時の後にZを付加) | (日時の後にZを付加) | 2026-08-13T05:17:24Z |
Frequently Asked Questions
なぜ「T」という文字を間に入れるのですか?
日付(Date)と時刻(Time)の境界を明確にし、機械がデータを解析する際にどこからが時刻であるかを瞬時に判別できるようにするためです。
「Z」の意味は何ですか?
「Z」はゼロ・オフセット(Zero offset)を意味し、協定世界時(UTC)であることを示します。航海用語の「Zulu time」に由来しています。
基本形式(区切り文字なし)はいつ使えばいいですか?
主にデータ通信の帯域を節約したい場合や、データベースの内部処理など、人間が直接読む必要のないシステム間連携で利用されます。
週番号(Www)の定義はどうなっていますか?
ISO 8601では、その年の最初の木曜日を含む週を「第1週(W01)」と定義しています。これにより、年をまたぐ週の扱いが厳格に決められています。
EDTFとは何ですか?
Extended Date/Time Formatの略で、主に図書館や歴史学などの分野で利用される拡張形式です。正確な日付が不明な場合などの表記法を定義しており、ISO 8601-2で標準化されています。
References
- "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). Archived from the original on 2017-10-20. Retrieved 2017-10-19.
- ISO 8601:2004[E] section 1 Scope
- "Introduction to the new ISO 8601-1 and ISO 8601-2". ISO/TC 154. 2019-08-26.
- ISO 8601:2004(E), , 2004-12-01,
Annex A: ... From that concept representations of all other date and time values were logically derived; thus, ISO 2014, ISO 3307 and ISO 4031 have been superseded. ... Identification of a particular date by means of ordinal dates (ISO 2711) and by means of the week numbering system (ISO 2015) were alternative methods that the basic concept of this International Standard could also encompass; thus, ISO 2015 and ISO 2711 have now been superseded.
- ISO/TC 154. "ISO 2014:1976 - Writing of calendar dates in all-numeric form".
{{}}: CS1 maint: numeric names: authors list () - ISO/TC 154. "ISO 2015:1976 - Numbering of weeks".
{{}}: CS1 maint: numeric names: authors list () - ISO/TC 154. "ISO 2711:1973 - Information processing interchange — Representation of ordinal dates".
{{}}: CS1 maint: numeric names: authors list () - ISO/TC 154. "ISO 3307:1975 - Information interchange — Representation of time of the day".
{{}}: CS1 maint: numeric names: authors list () - ISO/TC 154. "ISO 4031:1978 - Information interchange — Representation of local time differentials".
{{}}: CS1 maint: numeric names: authors list () - ISO 8601:2004(E). . 2004-12-01. p. iv Foreword.