/
206.txt
102 lines (74 loc) · 4.52 KB
/
206.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
[14] [[RFC 3339]] は [[IETF]] の新しい仕様で使われることが多い[[日時]]の表記方法を規定しています。
* BNF
[PRE[
date-time = full-date "T" full-time
]PRE]
[PRE[
full-date = date-fullyear "-" date-month "-" date-mday
full-time = partial-time time-offset
]PRE]
[PRE[
date-fullyear = 4DIGIT
date-month = 2DIGIT ; 01-12
date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
month/year
time-hour = 2DIGIT ; 00-23
time-minute = 2DIGIT ; 00-59
time-second = 2DIGIT ; 00-59, 00-60 based on leap second rules
time-secfrac = "." 1*DIGIT
time-numoffset = ("+" / "-") time-hour ":" time-minute
time-offset = "Z" / time-numoffset
]PRE]
[PRE[
partial-time = time-hour ":" time-minute ":" time-second
[time-secfrac]
]PRE]
* 年
[19] [[ISO 8601]] (の当時の版) に従い、年号は4桁でなければなりません。1万年以降や0年よりも前は記述できません。
[1] この日付形式は[[2000年問題]]には対応していますが,[[10000年問題]]には対応出来ません。実装は [CODE(ABNF)[full-year = 4*DIGIT]] と読み替えるのが良いでしょう。但しこの場合固定長であるという特徴が失われるので注意する必要があります。
[2] なお、西暦1年〜999年を表す時には0を補わなければならないことに注意が必要です。 (但しそれ以前に[[暦]]が違うことにもっと注意が必要です。)
* 指示子
[17] [[指示子]]として [CODE[[[T]]]] と [CODE[[[Z]]]] があります。どちらも[[大文字]]と[[小文字]]のいずれでも良いことになっています。
ただし、[[大文字]]で生成する[['''べき''']]とされています [SRC[[[RFC 3339]]]]。
* 閏秒
[18] [[RFC 3339]] は[[閏秒]]に対応しています。[[正閏秒]]として60秒を使うことができ、
[[負閏秒]]では59秒を使いません [SRC[[[RFC 3339]]]]。
* IETF の XML 系仕様の日付形式
[15] [[IETF]] の [[XML]] 系仕様では [[XML Schema]] や [[RELAX NG]] のデータ型としては [CODE(XML)@en[[[xs:dateTime]]]]
([[XML Schemaの日付形式]]) を採用しつつ、本文で [[RFC 3339の日付形式]]の制約を課していることが多いです。
詳しくは[[IETFのXML日付形式]]を参照。
* 関連
[7] RFC 3339 の日付・時刻形式は、 [[ISO 8601の日付形式]]の[[部分集合]]です。
[8] [[RFC 2518]] <urn:ietf:rfc:2518> 23.2 附属書2 にも簡単な説明があります。
これは Chris Newman の Internet Draft から採ったものとされていますが、
この draft の最終的に RFC になったものが RFC 3339 です。
[6]
この形式を採用した規格には、 [[WebDAV]]、
[[IETF]] [[CPIM]] などがあります。
[9] [[HTMLの日付形式]] ([[大域日時]]) と似ていますが、 [[HTML]]
では [[T]] や [[Z]] に[[大文字]]を使わなければなりませんし、
[[HTML]] は[[閏秒]]にも対応していません。
[16] [[ISO 8601の日付形式]>>25]に、類似形式との比較があります。
[3] [[RFC2518]] (WebDAV) 規定時には RFC 3339 がまだ [[I-D]] だったので、 2518 23.2 (附属書2) で 3339 と同じものを規定しています。
[[#comment]]
[4]
この[[日付形式]]は[[時間帯]]を記述することが可能です。
[[受信者]]は、[[時間帯]]から[[送信者]]のおおよその位置を推定できます
(精度は余り高くないと考えられますが)。
これが便利なこともあれば、情報の漏洩といえることもあります。
そのような場合には、 [CODE[[[-00:00]]]]
([[時間帯]]不明) としてもよいと [[RFC 3341]]
は述べています。
([[名無しさん]])
[5]
[[RFC 4646]] は、 [[IANA]] 登録簿の[[日付形式]]として [[RFC 3339]]
の [CODE(ABNF)@en[[[full-date]]]] を採用しています。
[10] [CITE@en[Web Applications 1.0 r5474 disallow -00:00 in a global date and time stringFixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10370]]
( ([TIME[2010-09-24 09:55:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5473&to=5474>
[11] [CITE[Common Alerting Protocol]]
( ([TIME[2010-07-02 01:02:47 +09:00]] 版))
<http://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html>
[12] [CITE@en[RFC 6021 - Common YANG Data Types]]
([TIME[2010-10-07 04:53:03 +09:00]] 版)
<http://tools.ietf.org/html/rfc6021>