-
Notifications
You must be signed in to change notification settings - Fork 4
/
206.txt
138 lines (100 loc) · 5.89 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[14] [[RFC 3339]] は [[IETF]] の新しい仕様で使われることが多い[[日時]]の表記方法を規定しています。
* 仕様書
[REFS[
- [24] [CITE@en[RFC 3339 - Date and Time on the Internet: Timestamps]] ([TIME[2014-09-29 15:50:28 +09:00]] 版) <http://tools.ietf.org/html/rfc3339>
- [25] [CITE[RFC Errata Report]] ([TIME[2014-11-13 04:10:16 +09:00]] 版) <http://www.rfc-editor.org/errata_search.php?rfc=3339>
]REFS]
* 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]]]]。
[26] 日時の区切りは [CODE[[[T]]]] と ([[ABNF]] 構文上は) されていますが、
[[NOTE]] において可読性のために[[空白]]など他の文字に置き換えても良い
[SRC[>>24]] となっています。
* 閏秒
[18] [[RFC 3339]] は[[閏秒]]に対応しています。[[正閏秒]]として60秒を使うことができ、
[[負閏秒]]では59秒を使いません [SRC[[[RFC 3339]]]]。
* 文脈
[28] [CODE[[[report-uri]]]] で指定された [[URL]] に送信される [[JSON]]
では、本形式が採用されています。
* IETF の XML 系仕様の日付形式
[15] [[IETF]] の [[XML]] 系仕様では [[XML Schema]] や [[RELAX NG]] のデータ型としては [CODE(XML)@en[[[xs:dateTime]]]]
([[XML Schemaの日付形式]]) を採用しつつ、本文で [[RFC 3339の日付形式]]の制約を課していることが多いです。
詳しくは[[IETFのXML日付形式]]を参照。
* Syslog の日時
[20] [[Syslog]] の [CODE[[[TIMESTAMP]]]] は [[RFC 3339の日時形式]]を採用していますが、
次の制約を加えています [SRC[>>13]]。
[FIG(list)[
- [21] [[大文字]]を使わなければ[['''なりません''']]。
- [22] [CODE[[[T]]]] を使わなければ[['''なりません''']]。
- [23] [[閏秒]]を使っては[['''なりません''']]。
]FIG]
[REFS[
- [13] [CITE@en[RFC 5424 - The Syslog Protocol]] ([TIME[2014-09-14 04:23:15 +09:00]] 版) <https://tools.ietf.org/html/rfc5424#section-6.2.3>
]REFS]
* 関連
[7] RFC 3339 の日付・時刻形式は、 [[ISO 8601の日付形式]]の[[部分集合]]です。
[8] [[RFC 2518]] <urn:ietf:rfc:2518> 23.2 附属書2 にも簡単な説明があります。
これは Chris Newman の Internet Draft から採ったものとされていますが、
この draft の最終的に RFC になったものが RFC 3339 です。
[3] [[RFC2518]] (WebDAV) 規定時には RFC 3339 がまだ [[I-D]] だったので、 2518 23.2 (附属書2) で 3339 と同じものを規定しています。
[27] [[RFC 2518]] の改訂版である [[RFC 4918]] では [[RFC 3339]]
が参照されています。
[FIG(short list)[
- [CODE(URI)@en[[[DAV:creationdate]]]]
]FIG]
[6]
この形式を採用した規格には、
[[IETF]] [[CPIM]] などがあります。
[9] [[HTMLの日付形式]] ([[大域日時]]) と似ていますが、 [[HTML]]
では [[T]] や [[Z]] に[[大文字]]を使わなければなりませんし、
[[HTML]] は[[閏秒]]にも対応していません。
[16] [[ISO 8601の日付形式]>>25]に、類似形式との比較があります。
[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>