名 前
strptime − 文 字 列 で あ ら わ さ れ て い る 時 間 を tm 構 造 体 の 時 間 に 変 換 す る
書 式
#define
_XOPEN_SOURCE /* feature_test_macros(7) 参
照 */
#include <time.h>
char *strptime(const char *s, const char *format, struct tm *tm);
説 明
strptime() 関 数 は strftime(3) の 逆 関 数 で あ る 。 ポ イ ン タ ー s が 指 す 文 字 列 を format で 指 定 さ れ た フ ォ ー マ ッ ト を 使 っ て 「 要 素 別 の 時 刻 」 に 変 換 し 、 tm が 指 す 構 造 体 に 格 納 す る 。 要 素 別 の 時 刻 構 造 体 tm は <time.h> 内 で 以 下 の 様 に 定 義 さ れ て い る 。
struct tm {
int tm_sec; /* 秒 (0−60) */
int tm_min; /* 分 (0−59) */
int tm_hour; /* 時 間 (0−23) */
int tm_mday; /* 月 内 の 日 付
(1−31) */
int tm_mon; /* 月 (0−11) */
int tm_year; /* 年 − 1900 */
int tm_wday; /* 曜 日 (0−6, 日
曜 = 0) */
int tm_yday; /* 年 内 通 算 日
(0−365, 1 月 1 日 = 0) */
int tm_isdst; /* 夏 時 間 */ };
tm 構 造 体 の 詳 細 は ctime(3) を 参 照 。
format 引 き 数 は 、 scanf(3) で 使 わ れ て い る よ う な 、 フ ィ ー ル ド デ ィ ス ク リ プ タ ー と テ キ ス ト 文 字 で 構 成 さ れ て い る 文 字 列 で あ る 。 個 々 の フ ィ ー ル ド デ ィ ス ク リ プ タ ー は % と そ れ に 続 く 文 字 か ら な り 、 後 者 に フ ィ ー ル ド デ ィ ス ク リ プ タ ー を 置 き 換 え る 内 容 を 指 定 す る 。 format 文 字 列 中 の 他 の 全 て の 文 字 に は 、 入 力 文 字 列 に マ ッ チ す る 文 字 が な け れ ば な ら な い 。 フ ォ ー マ ッ ト 文 字 列 中 に あ る 空 白 は 例 外 で あ り 、 入 力 文 字 列 中 の 0 個 以 上 の 空 白 と マ ッ チ す る 。 2 つ の フ ィ ー ル ド デ ィ ス ク リ プ タ ー の 間 に は 、 空 白 ・ 英 字 ・ 数 字 が な け れ ば な ら な い 。
strptime() 関 数 は 、 入 力 文 字 列 を 左 か ら 右 へ 処 理 す る 。 入 力 さ れ た 3 つ の 要 素 (空 白 ・ 文 字 ・ フ ォ ー マ ッ ト ) は 、 順 に 処 理 さ れ る 。 入 力 が フ ォ ー マ ッ ト 文 字 列 と マ ッ チ で き な い 場 合 、 関 数 は 停 止 す る 。 残 り の フ ォ ー マ ッ ト 文 字 列 と 入 力 文 字 列 は 処 理 さ れ な い 。 使 用 可 能 な フ ィ ー ル ド デ ィ ス ク リ プ タ ー を 以 下 に 挙 げ る 。 (曜 日 や 月 の 名 前 と い っ た ) 文 字 列 を マ ッ チ さ せ る 場 合 、 大 文 字 と 小 文 字 は 区 別 せ ず に 比 較 す る 。 数 を マ ッ チ さ せ る 場 合 、 前 に 0 を つ け て も 構 わ な い が 必 ず し も 必 要 で は な い 。
%% 文 字 と し て の |
%。 |
%a ま た
は %A 現 在 の ロ
ケ ー ル で の 曜
日 名 (省 略 名 ま
た は 完 全 な 名
前 )。
%b ま た は %B ま
た は %h 現 在 の
ロ ケ ー ル で の
月 名 (省 略 名 ま
た は 完 全 な 名
前 )。
%c 現 在 の ロ ケ ー ル で の 日 付 と 時 刻 の 表 現 。 |
||
%C |
1 世 紀 中 の 年 (0−99)。
%d ま た は %e 月 内 の 日 付 (1−31)。
%D 日 付 。 |
%m/%d/%y と 同 じ 。 (こ れ は ア メ リ カ 式 の 日 付 形 式 で 、 ヨ ー |
ロ ッ パ で は 特 に %d/%m/%y と い う 形 式 が 広 く 使 わ れ て い る た め に 、 ア メ リ カ 人 以 外 に は 紛 ら わ し く 感 じ ら れ る 。 ISO 8601 規 格 で は %Y−%m−%d と い う 形 式 で あ る 。 )
%H 時 間 |
(0−23)。 |
|||
%I |
12 時 間 制 で の 時 間 (1−12)。
%j 年 の 初 め か ら の 通 算 の 日 付 |
(1−366)。 |
|||
%m 数 字 表 現 の 月 |
(1−12)。
%M 分 |
(0−59)。 |
||
%n 任 意 |
の 空 白 。
%p ロ ケ ー ル の |
AM (午 前 ) と PM (午 後 ) に 対 応 す る も の 。 (注 意 : 対 応 す |
る も の が な い か も し れ な い 。 )
%r |
(ロ ケ ー ル の AM と PM を 使 っ た ) 12 時 間 制 の 時 間 。 POSIX ロ ケ ー ル で は %I:%M:%S %p と 同 じ 。 現 在 の ロ ケ ー ル に お い て LC_TIME パ ー ト の t_fmt_ampm が 定 義 さ れ て い な い 場 合 、 動 作 は 未 定 義 で あ る 。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
%R |
%H:%M と 同 じ 。
秒 (0−60; 60
は 閏 秒 を 示 す
。 以 前 は 61 も 指
定 で き た )。 の 空 白 。
|