デジタル時代のデータ交換において、日付や時刻の表記ゆれは深刻なエラーの原因となります。国や文化によって「月/日/年」や「日/月/年」など書き方が異なるため、世界共通のルールとして策定されたのがISO 8601です。この規格は、曖昧さを排除し、コンピュータによる処理と人間による読み取りの両立を目指して設計されています。
Key Facts
- 世界共通ルール: 日付を「年-月-日」の順で表記し、大きな単位から小さな単位へ並べることで混乱を防ぐ。
- 2つの形式: 読みやすさを重視した「拡張形式」と、データ量を抑えた「基本形式」が存在する。
- UTCの採用: 協定世界時(UTC)を基準とし、タイムゾーンのオフセットを明確に定義する。
- 柔軟な精度: 必要に応じて、日や秒などの詳細情報を省略して表記することが可能。
ISO 8601の歴史と変遷
ISO 8601の初版は1988年6月に公開されました。それまで個別に存在していた週番号(ISO 2015)、序数日付(ISO 2711)、時刻表記(ISO 3307)などの複数の規格を統合し、一貫性のある表記体系を確立しました。
その後、2000年版や2004年版を経て、2019年には大幅な改訂が行われました。最新のISO 8601-1:2019では基本ルールが定義され、新設されたISO 8601-2:2019では、不確実な日付の扱いなど、より高度な拡張形式(EDTFなど)が定義されています。
表記の基本原則
ISO 8601では、情報の重要度が高い順(年 → 月 → 日 → 時 → 分 → 秒)に記述します。これにより、ソート(並び替え)が容易になり、誤解が生じにくい構造になっています。
基本形式と拡張形式
規格では、区切り文字の有無によって2種類の書き方を定めています。拡張形式はハイフン(-)やコロン(:)を用いて人間が読みやすくしたもので、一般的な文書に適しています。一方、基本形式は区切り文字を一切排除した形式で、データ通信などの効率性が求められる場面で利用されます。ただし、プレーンテキストでの利用には拡張形式が推奨されています。
精度の調整
状況に応じて、重要度の低い情報を末尾から省略できます。例えば「2004-05」と表記した場合、これは2004年5月を指します。このとき、特定の日付や、2004年から2005年にまたがる期間を指すことはありません。
具体的な表記方法
日付の表現
最も一般的なカレンダー日付は「YYYY-MM-DD」形式です。例えば、1981年4月5日は「1981-04-05」となります。また、1年を1日から366日で数える「序数日付(YYYY-DDD)」や、週番号を用いた「週日付(YYYY-Www-D)」という表記法も定義されています。
時刻とタイムゾーン
時刻は24時間制を採用し、「Thh:mm:ss」のように表記します。先頭の「T」は時刻(Time)の開始を示す識別子です。また、世界的な基準となる協定世界時(UTC)を示す場合は、末尾に「Z」を付加します。
特定の地域時間を表す場合は、UTCからの時差(オフセット)を記述します。例えば、日本標準時(JST)はUTCより9時間進んでいるため、「+09:00」と表記します。
期間と時間間隔
ある時点から別の時点までの「期間(Duration)」は、「P」で始まる特殊な形式で記述します(例:P1Y2M10Dは1年2ヶ月10日)。また、「開始時刻/終了時刻」や「開始時刻/期間」といった形式で、特定の時間的な幅(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 | 05:17:24Z |
| タイムゾーン | ±hh:mm | ±hhmm | +09:00 (日本) |
Frequently Asked Questions
なぜ「年-月-日」の順番で書くのですか?
大きな単位から順に並べることで、文字列として並べ替えた際に、自然と時系列順に整列されるためです。これはコンピュータでのデータ管理において非常に効率的です。
「T」や「Z」という文字にはどのような意味がありますか?
「T」は日付と時刻の境界を示す区切り文字であり、「Z」はゼロ・オフセット、つまり協定世界時(UTC)であることを示すタイムゾーン指定子です。
基本形式と拡張形式の使い分けはどうすればいいですか?
人間が読む文書や設定ファイルなどでは、視認性の高い「拡張形式(ハイフンやコロンあり)」を使用してください。システム間のデータ転送など、データ量を最小限にしたい場合は「基本形式」が適しています。
ISO 8601は世界中で使われていますか?
はい。日本(JIS X 0301)をはじめ、アメリカ、中国、欧州諸国など多くの国が国家規格として採用しており、インターネット上のプロトコルやAPIのデータ交換形式として事実上の標準となっています。
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.