デジタル時代のデータ交換において、日付や時刻の書き方が国やシステムによって異なると、深刻な誤解やエラーの原因となります。こうした混乱を避けるために策定されたのが、国際標準化機構(ISO)によるISO 8601です。この規格は、誰がどこで見ても一意に解釈できる日付と時刻の表現方法を定義しています。
Key Facts
- 基本原則:大きな単位(年)から小さな単位(秒)へと順に表記する。
- 標準形式:日付は「YYYY-MM-DD」、時刻は「hh:mm:ss」が一般的。
- UTCの表記:協定世界時(UTC)を示す場合は、末尾に「Z」を付加する。
- 柔軟な精度:必要に応じて、精度の低い項目(秒や分など)を省略可能。
- 最新版:2019年に発行されたISO 8601-1およびISO 8601-2が現在の基準。
ISO 8601の歴史と変遷
ISO 8601の初版は1988年6月に公開されました。それ以前には、カレンダー日付の数値表記(ISO 2014)や週番号の決定ルール(ISO 2015)、通日日付(ISO 2711)、時刻の表現(ISO 3307)など、個別の規格が存在していましたが、これらを統合して体系化したのがISO 8601です。
その後、2000年版、2004年版と改訂を重ね、2019年には構成が大きく変更されました。現在は、基本ルールを定める「ISO 8601-1」と、不確実な日付や歴史的な表記を扱う拡張形式を定義した「ISO 8601-2」の2部構成となっています。
日付の表記ルール
カレンダー日付
最も一般的に利用される形式です。4桁の年(YYYY)、2桁の月(MM)、2桁の日(DD)で構成されます。ハイフンで区切る「拡張形式(例:2026-08-13)」と、区切り文字を省いた「基本形式(例:20260813)」の2種類があります。
週日付と通日日付
特定の用途向けに、週単位や通日(1月1日からの経過日数)での表記も定義されています。週日付では、その年の最初の木曜日を含む週を「第1週(W01)」と定義します。また、通日日付は「YYYY-DDD」形式で、うるう年の場合は最大366日までとなります。
時刻とタイムゾーンの表現
時刻の基本構成
ISO 8601では24時間制を採用しています。時刻の表記には、日付と時刻を区別するための識別子「T」を先頭に置くことが推奨されています(例:T13:47:30)。ただし、文脈から明らかに時刻であると判断できる場合は、Tを省略することが可能です。
タイムゾーンとUTC
世界各地の時間を正確に表すため、協定世界時(UTC)からのオフセット(時差)を記述します。UTCそのものを表す場合は、末尾に「Z」を付けます。特定の地域を示す場合は、「+09:00」(日本)や「-05:00」のように符号と時間を組み合わせて表記します。
期間と時間間隔の定義
単一の時点だけでなく、「どれくらいの時間が経過したか」という期間(Duration)や、開始点と終了点を持つ時間間隔(Time Interval)も定義されています。
- 期間:「P」から始まり、年(Y)、月(M)、週(W)、日(D)、時間(T)、分(M)、秒(S)の順に記述します(例:P1Y2M10DT2H30M)。
- 時間間隔:「開始日/終了日」や「開始日/期間」のようにスラッシュで区切って表現します。
規格の概要まとめ
| 項目 | 拡張形式(推奨) | 基本形式 | 例 |
|---|---|---|---|
| カレンダー日付 | YYYY-MM-DD | YYYYMMDD | 2026-08-13 / 20260813 |
| 時刻 | hh:mm:ss | hhmmss | 15:30:00 / 153000 |
| 結合表記 | YYYY-MM-DDThh:mm:ss | YYYYMMDDThhmmss | 2026-08-13T15:30:00 |
| UTC表記 | 時刻 + Z | 時刻 + Z | 15:30:00Z |
| 期間 | P[n]Y[n]M... | P[n]Y[n]M... | P3Y6M4DT12H |
Frequently Asked Questions
なぜ「年-月-日」の順で書く必要があるのですか?
大きな単位から小さな単位へ並べることで、文字列としてソート(並べ替え)した際に、自然と時系列順に並ぶためです。これはコンピュータ処理において非常に効率的です。
「T」や「Z」にはどのような意味がありますか?
「T」はTimeの略で、日付と時刻の境界線を示します。「Z」はZulu time(ズールー時間)の略で、UTC(協定世界時)であることを意味します。
月や日を省略して「2024-05」と書いても正解ですか?
はい。ISO 8601では、精度の低い項目から順に省略することが認められています。「2024-05」は2024年5月を指します。ただし、月だけを省略して「2024-15」のように書くことはできません。
日本標準時(JST)をISO 8601でどう表記しますか?
日本はUTCより9時間進んでいるため、時刻の後に「+09:00」を付けます。例:2026-08-13T15:30:00+09:00
週日付の「第1週」はどうやって決まりますか?
その年の最初の木曜日を含む週、あるいは1月4日を含む週が「第1週」と定義されます。これにより、年をまたぐ週の扱いが明確になります。
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.