この文書は、W3C 標準情報 (TR) の覚書 (NOTE)、「Date and Time Format」<http://www.w3.org/TR/1998/NOTE-datetime-19980827>ToyFish.Net が独自に翻訳したものです。正式な仕様書は W3C のサイトにある英語版であり、その著作権は W3C が保有しています。また、翻訳には誤りがあるかもしれません。見つけた方は、メールまたは投稿ページでお知らせください。

翻訳の最終更新日: 1999 年 10 月 20 日


W3C NOTE-datetime

 

日時形式

この文書の位置付け

1997 年 9 月 15 日付で W3C に提出

この版 (原文):
http://www.w3.org/TR/1998/NOTE-datetime-19980827
最新版:
http://www.w3.org/TR/NOTE-datetime
著者:
Misha Wolf <misha.wolf@reuters.com>
Charles Wicksteed <charles.wicksteed@reuters.com>
文書の状態

この文書の位置付け

この文書は、W3 Consortium が討論のためのみに公開した覚書 (NOTE) です。 これは、その内容、あるいはこの覚書 (NOTE) で示された問題に対して過去・現在・未来において同 Consortium が何らかの資源を割り当てることを保証するものではありません。

この文書は Reuters Limited から W3C への提案です。 その意図については W3C 受理済み提案を参照してください。

この文書に対するコメントは、datetime-comments@w3.org までお送りください。


概要

この文書では、日時表記のための国際標準である ISO 8601 の簡易版を定義します。 ISO 8601 は日時形式をいくつも定めています。エラーの余地やソフトウェアの複雑さを 軽減するのには、サポートされる形式を少ない数に制限することが役に立ちます。 この簡易版では、たいていの要求に応えられるようないくつかの日時形式を定めます。


はじめに

日時表記の国際標準は ISO 8601です。完全な参照番号は ISO 8601 : 1988 (E) で、 『時刻の要素と交換形式 - 情報交換 - 日時表記 (Data elements and interchange formats - Information interchange - Representation of dates and times)』と 題されています。 ISO 8601 に関する 議論 については Markus Kuhn が書いています。

ISO 8601 は日時形式をいくつも定めています。例えば、句読点なしの基本形式と 句読点ありの拡張形式を定めており、要素を省略できるようになっています。 この簡易版では形式の範囲を制限したものを定めますが、それらはすべて 妥当な ISO 8601 日時表記となります。その目的は、ワールドワイドウェブ関連の 標準仕様における ISO 8601 の使用を単純化し、仕様の開発者やユ利用者が ISO 8601 自体を 入手しなくてもすむようにすることです。

ISO 8601 でとくに問題となるのは年表記から世紀部分を省くのを認めていることで、 これは 2000 年になると問題を起こす可能性があります。 この簡易版では、どの場合でも年は 4 桁で表現することでこの問題を 回避しています。

この簡易版は、曖昧さのない日時表記を必要とする標準仕様で採用することができます。 粒度と柔軟性についての要件は標準仕様ごとに異なるため、 この簡易版はいくつかのオプションを用意しています。この簡易版を採用する標準仕様は、 どのオプションを認めるか指定しなければなりません。


形式

日時に関して必要とする粒度の水準が標準仕様ごとに異なるため、 この簡易版では 6 つの水準を定めます。 この簡易版を参照する標準仕様では、これらの粒度の 1 つ以上を指定するべきです。 与えられた仕様が 2 つ以上の粒度を認めている場合は、精度の少ない日時の意味、 例えば、精度の異なる2つの日付を比較したときの結果について規定すべきです。

各形式は以下の通りです。 ここで示されている構成要素は、まったくそのまま、ここで示した区切り記号をその通りに使って 表記しなければなりません。ISO 8601 で定められているように、文字列中で "T" は そのままに表記され、時刻要素の始まりを示すことに注意してください。

   年:
      YYYY (例 1997)
   年・月:
      YYYY-MM (例 1997-07)
   完全な日付:
      YYYY-MM-DD (例 1997-07-16)
   完全な日付と時・分:
      YYYY-MM-DDThh:mmTZD (例 1997-07-16T19:20+01:00)
   完全な日付と時・分・秒:
      YYYY-MM-DDThh:mm:ssTZD (例 1997-07-16T19:20:30+01:00)
   完全な日付と時・分・秒・10進数での小数秒:
      YYYY-MM-DDThh:mm:ss.sTZD (例 1997-07-16T19:20:30.45+01:00)

ここで、

     YYYY = 4桁の年
     MM   = 2桁の月 (01=1 月、以下同様)
     DD   = 2桁の日 (01〜31)
     hh   = 2桁の時 (00〜23) (am/pm は不可)
     mm   = 2桁の分 (00〜59)
     ss   = 2桁の秒 (00〜59)
     s    = 1 桁以上の 10 進数での小数秒
     TZD  = タイムゾーン指定子 (Z または +hh:mm または -hh:mm)

この簡易版では 10 進数での小数秒を表記するのに何桁まで使えるかは定めません。 この簡易版を採用する仕様が小数秒を認める場合は最小の桁数 (1 以上) と 最大の桁数 (最大値は「無限」としてもかまいません) の両方を指定しなければ なりません。

この簡易版ではタイムゾーン・オフセットの扱いに関して2つの方法を 定義します。

  1. 時間を UTC (協定世界時) で表記し、特別な UTC 指定子 ("Z") を つけます。Times are expressed in UTC (Coordinated Universal Time), with a special UTC designator ("Z").
  2. 時間を現地時間で表記し、時・分でタイムゾーン・オフセットをつけます。 "+hh:mm" というタイムゾーン・オフセットは、 その日時が UTCから "hh" 時間と "mm" 分だけ 進んでいることを示します。 "-hh:mm" というタイムゾーン・オフセットは、 その日時が UTCから "hh" 時間と "mm" 分だけ 遅れていることを示します。

この簡易版を参照する標準仕様は、このタイムゾーン・オフセット処理方法のうち 1 つまたは両方を認めるべきです。


1994-11-05T08:15:30-05:00 は、 アメリカ東部標準時の 1994 年 11 月 5 日午前 8 時 15 分 30 秒に対応します。

1994-11-05T13:15:30Z も同じ時刻に対応します。


謝辞

この文書は、Chris Newman の Internet Draft、 『インターネットにおける日時 (Date and Time on the Internet)』 (draft-newman-datetime-01.txt) を参考にしています。


翻訳: ToyFish.Net