ISO 8601
ISO 8601形式の時刻表記例[1] |
---|
2024-12-01T09:17:20+00:00 |
ISO 8601は日付と時刻の表記に関する国際規格。 最新版は2004年に発行されたISO 8601:2004 で、古い版としてISO 8601:2000 、ISO 8601:1988 があった。いずれも正式な題は Data elements and interchange formats – Information interchange – Representation of dates and times である。
基本表記(標準表記)と拡張表記の2種類の表記方法がある。
基本表記(標準表記)は、日付、時刻のいずれにおいても区切り文字を用いない最短の表記方法である。例えば、いま、年=YYYY(4桁の数字。グレゴリオ暦)、月=MM(2桁の数字。以下同様)、日=DD、時=hh、分=mm、秒=ssで協定世界時(UTC)よりも09時間00分ほど早い地域であると仮定すると、基本表記(標準表記)では、 YYYYMMDDThhmmss+0900 となる。
拡張表記は、「年」を表す4桁の数字をハイフン (-) で区切ることによって欧米等のローカルな年月日表記ではないことを先ず明らかにし、ハイフン (-) 、T記号、コロン (:) 、Z記号あるいはプラス記号 (+) あるいはマイナス記号 (-) で各要素を区切ることによって視認性を良好にした表記方法である。拡張表記では、上記例の場合は、YYYY-MM-DDThh:mm:ss+09:00 となる。
日付と時刻の組合せにおいて基本表記(標準表記)と拡張表記との混在は許されず、どちらかに統一されていなければならない。
ISO 8601 に対応している日本国内の規格として日本工業規格JIS X 0301(旧JIS C 6262)があり、ISO 8601:2000 の翻訳がJIS X 0301:2002 「情報交換のためのデータ要素及び交換形式 ― 日付及び時刻の表記」(英語題はISO 8601に同じ)に収められている[2]。
目次
日付
ISO 8601 では日付の指定の仕方に、年と月と日を指定する方法、年と年内の日の番号を指定する方法、年と週と曜日を指定する方法の3つがある(それぞれは下で詳説)。
ISO 8601 では日付の表記にグレゴリオ暦を用いることになっているので、ユリウス暦の用いられていた時代の日付を表す際にはグレゴリオ暦に換算する必要がある。
基準としては、「西暦2000年1月1日を土曜日とする。」と規定している。
年は(基本表記の場合でも拡張表記の場合でも)4桁の数字で表記される。
- 0000から1582の範囲を使用する場合は暦法が異なる場合も多いため、事前に通信の送信側と受信側との間での合意が必要である。
- 0000から9999までの範囲外の年を表記する場合には、事前に通信の送信側と受信側との間で、先頭に正負の符号(+あるいは-)を付して任意の桁数の数字を追加することができるという合意が必要である(追加であるため年の桁数は4桁以上である)。なお、拡張表記の場合、事前の合意次第では+019332が有効でも+000299は無効という場合もありうる。
- 年の表記は 0001 が西暦1年を表し、0000 は紀元前1年、-0001 は紀元前2年である。これは西暦0年が存在しないためである(ちなみに0世紀も存在しない)。
月の表記は 01 から 12 の値を取り、それぞれ01月から12月を表す。
年と月と日
YYYY-MM-DD | または | YYYYMMDD |
YYYY-MM | (YYYYMM は不可 ) | |
YYYY |
YYYYMMDD(基本表記)あるいは YYYY-MM-DD(拡張表記) のいずれかで表記される。「年」が最初に来ていることを明らかにするため、また、視認性を良くするため、この拡張表記が頻用されている。
YYYY-MM のみで-DD を省くことも、 YYYY のみで MMDD(-MM-DD) を省くことも可能であり、その場合、前者は年月のみを、後者は年のみを表す。ただし、YYYYMM というような‐(ハイフン)無しの数字6桁のみの表記は認められていない。
- 例:
年と年内の日の番号
YYYY-DDD と表記する。 DDD は、年内の日の番号である。1月1日は 001 と表記し、12月31日は平年では 365 、閏年では 366 になる。
- 例:
- 2004-092 (2004092)
- 2004年の第92日目、すなわち4月1日を表す。
- 2004-092 (2004092)
年と週と曜日
YYYY-Www-D と表記する。ww は年内の暦週の番号で、年の第1週は 01、最終週は 52 または 53 となる。
- D は曜日を表し、月曜日が 1、日曜日は 7 である。「8」「9」は表記数値とされない(エラー扱い)。
- 例:
- 2004-W14-4 (2004W144)
- 2004年の第14週の木曜日、すなわち4月1日を表す。
- 2004-W14-4 (2004W144)
ある年における、「最初の木曜日を含む週が、その年の第1週である。」と規定されている。
これは JIS X 0301 にも例示されている通り、
- 「第1週は事実上、1月4日を含む週である。」という基準認識に等しい。
- 年初において以下の曜日に該当する場合、その日は新年の曜日としては扱わず、あくまで旧年最終週の曜日として扱う、という事を意味する。
- 同様に、年末において以下の曜日に該当する場合、その日は当年最終週の曜日としてでは無く、翌年第1週の曜日として扱うものとされている。
時刻
時刻の表記には hh:mm:ss の形式が用いられる。hh は時で 00 から 24 の値をとる。mm は分で 00 から 59 の値をとる。ss は秒で 00 から 59 及び閏秒に 60 の値をとる。ss, mm:ss の部分は省略可能で hh:mm, hhの形式も使用可能。
最も下の要素では小数値を用いることができる。小数点にはコンマ (,) が推奨されており、ピリオド (.) を用いることもできる。
- 例:
- 11:30:30,5 (113030,5)
- 11時間30分30.5秒
- 11:30,5 (1130,5)
- 11:30:30 と等価。
- 11.5
- 11:30 と等価。
- 11:30:30,5 (113030,5)
日の変わり目の表し方は2通り以上あり、00:00 と 24:00, 24:00:00 などで表すことができるが、00:00は日の初めで 24:00 は日の終わりを表す(2004-03-31T24:00Z は 2004-04-01T00:00Z と同じ時刻を表す)。
日付と時刻の組合せ
<date1> T <time1> のように日付と時刻の間にTを挟んで表記する。(例:2004-04-01T00:00:01+09:00=2004年04月01日00時00分01秒(正午)(JST)
タイムゾーン指定子
時刻の後ろに Z を添えることで協定世界時(UTC)での時刻をそのまま示すことができる。
- UTC以外のタイムゾーン(時間帯)
UTCより先に進んでいる時間帯の場合はプラス(+)、UTCより後に遅れている時間帯の場合はマイナス(-)として、時刻の後ろに ±hh:mm, ±hhmm, ±hh のいずれかを添えることにより、その時間帯(タイムゾーン)でのローカル時刻を示すことができる。
期間
特定の期間を表す場合、開始日時/終了日時で表記される。それぞれの日時は上述の日付あるいはそれに付属した時刻によって表記され、その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/2005-07-01
なお期間の明示にあたっては、開始日時と終了日時で年あるいは年と月が同一である場合、それを省略することができる。
- 年が同一の場合の例:
- 2004-04-01/07-01
- 2004年の4月1日から7月1日まで
- 2004-04-01/07-01
- 年と月が同一の場合の例:
- 2004-04-01/15
- 2004年4月の1日から15日まで
- 2004-04-01/15
脚注
- ↑ 協定世界時によるページ生成時刻
- ↑ JIS X 0301では、必要に応じて元号(明治から平成まで)に基づく表記を認める規定が追加されている。元号を識別する必要があれば、漢字か英字の頭文字を識別記号として使用できる。例: H16.04.01
関連項目
外部リンク
資料
すべて英語
- ISO 8601:2004 from ISO
- Summary of 8601 by ISO
- Use international date format (ISO) - Quality Web Tips The World Wide Web Consortium (W3C)