OSDN Git Service

(split) LDP: Translation snapshots for LDP 3.64
[linuxjm/LDP_man-pages.git] / release / man3 / strptime.3
1 .\" Copyright 1993 Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
2 .\"
3 .\" %%%LICENSE_START(VERBATIM)
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein.  The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
19 .\" professionally.
20 .\"
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
23 .\" %%%LICENSE_END
24 .\"
25 .\" Modified, jmv@lucifer.dorms.spbu.ru, 1999-11-08
26 .\" Modified, aeb, 2000-04-07
27 .\" Updated from glibc docs, C. Scott Ananian, 2001-08-25
28 .\" Modified, aeb, 2001-08-31
29 .\" Modified, wharms 2001-11-12, remark on white space and example
30 .\"
31 .\"*******************************************************************
32 .\"
33 .\" This file was generated with po4a. Translate the source file.
34 .\"
35 .\"*******************************************************************
36 .\"
37 .\" Japanese Version Copyright (c) 1998 SHOJI Yasushi all rights reserved.
38 .\" Translated Fri Jun 26 1998 by SHOJI Yasushi <yashi@yashi.com>
39 .\" Updated & Modefied Sun Mar 7 1999 by Shouichi Saito
40 .\" Updated Tue Oct 10 22:29:13 JST 2000
41 .\"     by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
42 .\" Updated Tue Apr  3 20:49:00 JST 2001
43 .\"     by Yuichi SATO <ysato@h4.dion.ne.jp>
44 .\" Updated Thu Oct 11 10:05:36 JST 2001 by Yuichi SATO
45 .\" Updated Fri Dec 14 16:34:23 JST 2001 by Yuichi SATO
46 .\" Updated Sat Jan  5 22:17:34 JST 2002 by Yuichi SATO
47 .\" Updated Wed Jan 14 23:21:57 JST 2002 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
48 .\"
49 .TH STRPTIME 3 2014\-01\-17 GNU "Linux Programmer's Manual"
50 .SH 名前
51 strptime \- 文字列であらわされている時間を tm 構造体の時間に変換する
52 .SH 書式
53 \fB#define _XOPEN_SOURCE\fP /* feature_test_macros(7) 参照 */
54 .br
55 \fB#include <time.h>\fP
56 .sp
57 \fBchar *strptime(const char *\fP\fIs\fP\fB, const char *\fP\fIformat\fP\fB,\fP \fBstruct tm
58 *\fP\fItm\fP\fB);\fP
59 .SH 説明
60 \fBstrptime\fP() 関数は \fBstrftime\fP(3) の逆関数である。 ポインタ \fIs\fP が指す文字列を \fIformat\fP
61 で指定されたフォーマットを使って「要素別の時刻」に変換し、\fItm\fP が指す構造体に格納する。
62
63 要素別の時刻構造体 \fItm\fP は \fI<time.h>\fP 内で以下の様に定義されている。
64 .sp
65 .in +4n
66 .nf
67 struct tm {
68     int tm_sec;    /* Seconds (0\-60) */
69     int tm_min;    /* Minutes (0\-59) */
70     int tm_hour;   /* Hours (0\-23) */
71     int tm_mday;   /* Day of the month (1\-31) */
72     int tm_mon;    /* Month (0\-11) */
73     int tm_year;   /* Year \- 1900 */
74     int tm_wday;   /* Day of the week (0\-6, Sunday = 0) */
75     int tm_yday;   /* Day in the year (0\-365, 1 Jan = 0) */
76     int tm_isdst;  /* Daylight saving time */
77 };
78 .fi
79 .in
80
81 For more details on the \fItm\fP structure, see \fBctime\fP(3).
82
83 \fIformat\fP 引き数は、 \fBscanf\fP(3)  で使われているような、 フィールドディスクリプターとテキスト文字で構成されている文字列である。
84 個々のフィールドディスクリプターは \fB%\fP とそれに続く文字からなり、 後者にフィールドディスクリプターを置き換える内容を指定する。
85 \fIformat\fP 文字列中の他の全ての文字には、入力文字列にマッチする文字がなければならない。 フォーマット文字列中にある空白は例外であり、
86 入力文字列中の 0 個以上の空白とマッチする。 2 つのフィールドディスクリプターの間には、 空白・英字・数字がなければならない。
87 .PP
88 \fBstrptime\fP()  関数は、入力文字列を左から右へ処理する。 入力された 3 つの要素 (空白・文字・フォーマット) は、順に処理される。
89 入力がフォーマット文字列とマッチできない場合、関数は停止する。 残りのフォーマット文字列と入力文字列は処理されない。
90 .PP
91 The supported input field descriptors are listed below.  In case a text
92 string (such as the name of a day of the week or a month name)  is to be
93 matched, the comparison is case insensitive.  In case a number is to be
94 matched, leading zeros are permitted but not required.
95 .TP 
96 \fB%%\fP
97 文字としての \fB%\fP。
98 .TP 
99 \fB%a\fP または \fB%A\fP
100 The name of the day of the week according to the current locale, in
101 abbreviated form or the full name.
102 .TP 
103 \fB%b\fP または \fB%B\fP または \fB%h\fP
104 現在のロケールでの月名 (省略名または完全な名前)。
105 .TP 
106 \fB%c\fP
107 現在のロケールでの日付と時刻の表現。
108 .TP 
109 \fB%C\fP
110 1 世紀中の年 (0\-99)。
111 .TP 
112 \fB%d\fP または \fB%e\fP
113 月内の日付 (1\-31)。
114 .TP 
115 \fB%D\fP
116 日付。 \fB%m/%d/%y\fP と同じ。 (これはアメリカ式の日付形式で、 ヨーロッパでは特に \fB%d/%m/%y\fP
117 という形式が広く使われているために、 アメリカ人以外には紛らわしく感じられる。 ISO 8601 規格では \fB%Y\-%m\-%d\fP という形式である。)
118 .TP 
119 \fB%H\fP
120 時間 (0\-23)。
121 .TP 
122 \fB%I\fP
123 12 時間制での時間 (1\-12)。
124 .TP 
125 \fB%j\fP
126 年の初めからの通算の日付 (1\-366)。
127 .TP 
128 \fB%m\fP
129 数字表現の月 (1\-12)。
130 .TP 
131 \fB%M\fP
132 分 (0\-59)。
133 .TP 
134 \fB%n\fP
135 任意の空白。
136 .TP 
137 \fB%p\fP
138 ロケールの AM (午前) と PM (午後) に対応するもの。 (注意: 対応するものがないかもしれない。)
139 .TP 
140 \fB%r\fP
141 (ロケールの AM と PM を使った) 12 時間制の時間。 POSIX ロケールでは \fB%I:%M:%S %p\fP と同じ。 現在のロケールにおいて
142 \fBLC_TIME\fP パートの \fIt_fmt_ampm\fP が定義されていない場合、 動作は未定義である。
143 .TP 
144 \fB%R\fP
145 \fB%H:%M\fP と同じ。
146 .TP 
147 \fB%S\fP
148 秒 (0\-60; 60 は閏秒を示す。以前は 61 も指定できた)。
149 .TP 
150 \fB%t\fP
151 任意の空白。
152 .TP 
153 \fB%T\fP
154 \fB%H:%M:%S\fP と同じ。
155 .TP 
156 \fB%U\fP
157 日曜日を週の始まりとした年通算での週数 (0\-53)。 1 月の最初の日曜日を第 1 週目の最初の日する。
158 .TP 
159 \fB%w\fP
160 The ordinal number of the day of the week (0\-6), with Sunday = 0.
161 .TP 
162 \fB%W\fP
163 月曜日を週の始まりとした年通算での週数 (0\-53)。 1 月の最初の月曜日を第 1 週目の最初の日する。
164 .TP 
165 \fB%x\fP
166 日付。ロケールの日付フォーマットを使う。
167 .TP 
168 \fB%X\fP
169 時刻。ロケールの時刻フォーマットを使う。
170 .TP 
171 \fB%y\fP
172 1 世紀中の年 (0\-99)。 世紀が指定されない場合、 値が 69\-99 の範囲のときは 20 世紀の年 (1969\-1999)、 値が 00\-68
173 の範囲のときは 21 世紀の年 (2000\-2068) とする。
174 .TP 
175 \fB%Y\fP
176 年。世紀の部分を含む (例: 1991)。
177 .LP
178 E や O という修正子を使うことで変更できるフィールドディスクリプタもある。 これらの修正子は、別のフォーマットや仕様を使うことを指示する。
179 別のフォーマットや仕様が現在のロケールに存在しないときは、 変更していないフィールドディスクリプタが使われる。
180 .LP
181 E 修正子は、ロケールに依存した日付と時刻の別の表現形式が 入力文字列に含まれていることを指定する。
182 .TP 
183 \fB%Ec\fP
184 日付と時刻。ロケールに依存した別の表現形式を使う。
185 .TP 
186 \fB%EC\fP
187 基準年 (期間) の名前。ロケールに依存した別の表現形式を使う。
188 .TP 
189 \fB%Ex\fP
190 日付。ロケールに依存した別の表現形式を使う。
191 .TP 
192 \fB%EX\fP
193 時刻。ロケールに依存した別の表現形式を使う。
194 .TP 
195 \fB%Ey\fP
196 \fB%EC\fP (年のみ) からのオフセット。ロケールに依存した別の表現形式を使う。
197 .TP 
198 \fB%EY\fP
199 完全な形式の年。別の表現型式を使う。
200 .LP
201 O 修正子は、ロケールに依存した別のフォーマットの中に 数値の入力があることを指定する。
202 .TP 
203 \fB%Od\fP または \fB%Oe\fP
204 月の初めからの通算の日付。ロケールに依存した別の数値シンボルを使う。 0 を頭につけてもよいが、必須ではない。
205 .TP 
206 \fB%OH\fP
207 時間 (24 時間制)。ロケールに依存した別の数値シンボルを使う。
208 .TP 
209 \fB%OI\fP
210 時間 (12 時間制)。ロケールに依存した別の数値シンボルを使う。
211 .TP 
212 \fB%Om\fP
213 月。ロケールに依存した別の数値シンボルを使う。
214 .TP 
215 \fB%OM\fP
216 分。ロケールに依存した別の数値シンボルを使う。
217 .TP 
218 \fB%OS\fP
219 秒。ロケールに依存した別の数値シンボルを使う。
220 .TP 
221 \fB%OU\fP
222 年の初めからの通算の週数 (日曜日を週の始めとする)。 ロケールに依存した別の数値シンボルを使う。
223 .TP 
224 \fB%Ow\fP
225 The ordinal number of the day of the week (Sunday=0),
226  using the locale's alternative numeric symbols.
227 .TP 
228 \fB%OW\fP
229 年の初めからの通算の週数 (月曜日を週の始めとする)。 ロケールに依存した別の数値シンボルを使う。
230 .TP 
231 \fB%Oy\fP
232 年 (\fB%C\fP からのオフセット)。ロケールに依存した別の数値シンボルを使う。
233 .SH 返り値
234 この関数の返り値は、関数の中で処理されなかった最初の文字へのポインタである。 フォーマット文字列が必要する以上の文字が入力文字列に含まれている場合、
235 返り値は最後に処理された入力文字の次の文字を指す。 すべての入力文字列が処理された場合、 返り値は文字列末尾の NULL バイトを指す。
236 \fBstrptime\fP()  がフォーマット文字列のすべての比較に失敗し、 エラーが起こった場合、関数は NULL ポインタを返す。
237 .SH 準拠
238 SUSv2, POSIX.1\-2001.
239 .SH 注意
240 .LP
241 原則として、この関数は \fItm\fP の初期化はせずに、 指定された値のみを入れる。 つまり、この関数の呼び出しの前に \fItm\fP
242 を初期化しなければならない。 他の UNIX システムとは、細かい点で異なる。 glibc の実装では、明示的に指定されないフィールドは変更されない。
243 例外として、年・月・日のいずれかの要素が変更された場合に \fItm_wday\fP と \fItm_yday\fP が再計算される。
244 .PP
245 この関数は、libc 4.6.8 以降で使用できる。 Linux の libc4 と libc5 のインクルードファイルは、
246 この関数のプロトタイプを常に定義する。 glibc2 のインクルードファイルは、 \fB_XOPEN_SOURCE\fP または \fB_GNU_SOURCE\fP
247 が定義された場合のみ、 この関数のプロトタイプを提供する。
248 .PP
249 libc 5.4.13 より前では、空白 (と \(aqn\(aq または \(aqt\(aq 指定) は扱われなかった。 ロケールの修正子
250 \(aqE\(aq と \(aqO\(aq は受け付けられなかった。 また、\(aqC\(aq の指定は \(aqc\(aq
251 の指定と同じ意味で扱われた。
252 .PP
253 .\" In libc4 and libc5 the code for %I is broken (fixed in glibc;
254 .\" %OI was fixed in glibc 2.2.4).
255 \(aqy\(aq (1 世紀中の年) の指定は、libc4 と libc5 では 20 世紀の年として解釈される。 glibc 2.0 では
256 1950\-2049 の範囲として解釈される。 glibc 2.1 からは 1969\-2068 の範囲として解釈される。
257 .SS "glibc での注意"
258 一貫性を持たせるため、glibc では \fBstrptime\fP() に \fBstrftime\fP(3)
259 と同じフォーマット文字をサポートさせようとしている。多くの場合、対応するフィールドが解釈されるが、 \fItm\fP
260 フィールドは変更されない。使用可能なフォーマット文字を以下に示す。
261 .TP 
262 \fB%F\fP
263 \fB%Y\-%m\-%d\fP と同じ。ISO 8601 の日付形式。
264 .TP 
265 \fB%g\fP
266 ISO 週数に対応した西暦年。世紀は含まず (0\-99) の範囲。
267 .TP 
268 \fB%G\fP
269 ISO 週数に対応した西暦年 (例えば 1991)。
270 .TP 
271 \fB%u\fP
272 10 進数表記の曜日 (1\-7 で月曜日を 1 とする)。
273 .TP 
274 \fB%V\fP
275 ISO 8601:1988 形式での年通算の 10 進数表記での週数 (1\-53)。 1 月 1 日を含む (月曜日から始まる) 週に 4
276 日以上が含まれている場合は、 その週を第 1 週とする。 3 日以下しか含まれていない場合は、1 月 1 日を含む週を前年の最終の週として、 次の週を第
277 1 週とする。
278 .TP 
279 \fB%z\fP
280 RFC\-822/ISO 8601 標準タイムゾーンを指定する。
281 .TP 
282 \fB%Z\fP
283 タイムゾーン名。
284 .LP
285 同様に、 \fBstrftime\fP(3)  の GNU 版での拡張に対応するために、 \fB%k\fP は \fB%H、\fP \fB%P\fP は \fB%p\fP
286 と等価に扱われる。また、 \fB%l\fP は \fB%I\fP と等価に扱われるようになるはずである。 さらに以下も定義されている。
287 .TP 
288 \fB%s\fP
289 紀元 (Epoch; 1970\-01\-01 00:00:00 +0000 (UTC)) からの通算の秒数。
290 閏秒がサポートされていない限り、閏秒はカウントしない。
291 .LP
292 glibc における実装では、2 つのフィールド間の空白は必要ない。
293 .SH 例
294 以下の例は \fBstrptime\fP()  と \fBstrftime\fP(3)  の使用法を示している。
295 .sp
296 .nf
297 #define _XOPEN_SOURCE
298 #include <stdio.h>
299 #include <stdlib.h>
300 #include <string.h>
301 #include <time.h>
302
303 int
304 main(void)
305 {
306     struct tm tm;
307     char buf[255];
308
309     memset(&tm, 0, sizeof(struct tm));
310     strptime("2001\-11\-12 18:31:01", "%Y\-%m\-%d %H:%M:%S", &tm);
311     strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
312     puts(buf);
313     exit(EXIT_SUCCESS);
314 }
315 .fi
316 .SH 関連項目
317 \fBtime\fP(2), \fBgetdate\fP(3), \fBscanf\fP(3), \fBsetlocale\fP(3), \fBstrftime\fP(3)
318 .SH この文書について
319 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.64 の一部
320 である。プロジェクトの説明とバグ報告に関する情報は
321 http://www.kernel.org/doc/man\-pages/ に書かれている。