ISO 8601とRFC 3339の日付形式の違いは何ですか?


280

ISO 8601RFC 3339は、Webで一般的な2つの形式のようです。どちらを使うべきですか?1つは単なる拡張機能ですか?私は本当にそんなに悪いことを気にする必要がありますか?


42
RFCへのリンクをietf.org/rfc/rfc3339.txtからtools.ietf.org/html/rfc3339のHTMLバージョンに変更しました。RFCにリンクするときは、常にtools.ietf.org/htmlにあるHTMLバージョンにリンクする必要があります。セクションリンクのおかげでナビゲートしやすくなるだけでなく、重要なことに、読んでいるRFCを更新または廃止したRFCが一番上にリストされます。人々は知らないうちにStack Overflowで常に時代遅れのRFCを引用しています。その問題がなくなるまで、私はこのアドバイスを繰り返し続けます。(誤解を避けるために、この RFCは廃止されていません。)
Mark Amery

回答:


238

1つは単なる拡張機能ですか?

ほとんど、はい-RFC 3339はISO 8601のプロファイルとしてリストされています。最も顕著なのは、RFC 3339 が日付と時刻の完全な表現を指定していることです(小数秒のみがオプションです)。RFCには、いくつかの小さな微妙な違いもあります。たとえば、2桁のみの年の切り捨て表現は許可されていません。RFC3339には4桁の年が必要であり、RFCではピリオド文字を小数秒の小数点としてのみ使用できます。RFCでは "T"をスペース(またはその他の文字)で置き換えることもできますが、標準では省略のみが許可されています(表現を使用するすべての当事者間で合意がある場合のみ)。

2つの違いについてはあまり心配しませんが、オフケースでユースケースが実行される場合は、一見すると価値があります。


11
ISOは「T」の省略を許可して
Java Guy

21
申し訳ありませんがJava Guyですが、それは正しくありません。参照する付録は情報提供のみを目的としており、制限は文法をより簡単にするためです。セクション5.6の最後の注記では、セクション5.2の主題である前述の読みやすさの言及を参照して、読みやすさのためにスペースが使用される場合があることを明確に述べています。「この構文を使用するアプリケーションは、読みやすくするために、(たとえば)スペース文字で区切られた完全な日付とフルタイムを指定することを選択する場合があります。」
グレッグA.ウッズ

8
あなたがリンクした@JavaGuy付録では、RFC 3339にも構文について話されていない-それは題していますISO 8601収集ABNFを正式の文法を説明する試みであるISO 8601使用してABNFを。RFC 3339の日時構文に関する証拠として解釈すべきではありません。
Mark Amery 2015年

3
FWIW:これは、coreutilsリストで議論されています。lists.gnu.org
Frederick Nord

9
私は、Justin(以前のコメント)が連絡した著者です(ただし、そこでの大掛かりな作業のほとんどは担当していません)。私は彼のコメントを確認します。一般的に、RFC3339のような仕様書では、必須ではなく指定することをお勧めします。何が必要かを決定するのは、使用のコンテキストです。意図されていることが明確である限り、特定の構文生成を参照することは問題ありません。(これは、ISO8601への選択的な参照を行う際にRFC3339自体が行うことと実際には異なりません。)セクション5.6の注も参照してください。
グラハムクライン

20

RFC 3339は主にISO 8601のプロファイルですが、実際にはRFC 2822からの「-00:00」タイムゾーン仕様を借用することと矛盾しています。これはWikipediaの記事で説明されています。


4

あなたはそんなに気にする必要はありません。RFC 3339自体は、ISO 8601から派生した一連の標準です。ただし、微妙な違いがいくつかありますが、それらはすべてRFC 3339で概説されています。ここではそれらすべてについて説明しますが、おそらくもっと上手くいくでしょう。あなたが心配しているイベントで自分のためにドキュメントを読むだけです:

http://tools.ietf.org/html/rfc3339

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.