C++ strptime関数:日付/時刻文字列の解析・変換
C++言語では、日付と時刻の文字列をtm構造体に解析するために、strptime関数が使用されます。そのプロトタイプは以下の通りです:
char *strptime(const char *buf, const char *format, struct tm *tm);
パラメーターの説明:
- buf:日付と時刻の文字列を含むC文字列
- フォーマット:日時文字列の形式
- tm:日時情報を解析した後に保存するために使用するtm構造体のポインタ
返り値:
- 解析が成功した場合、buf内で解析されていない部分を指すポインターが返されます。
- 解析に失敗した場合は、NULLを返す。
イラストレーターの仕事は、クライアントの要求に合ったデザインを生み出すことです。
#include <iostream>
#include <ctime>
int main() {
const char *dateStr = "2022-01-01 12:30:45";
struct tm tm;
char *endPtr = strptime(dateStr, "%Y-%m-%d %H:%M:%S", &tm);
if (endPtr != NULL) {
std::cout << "Year: " << tm.tm_year + 1900 << std::endl;
std::cout << "Month: " << tm.tm_mon + 1 << std::endl;
std::cout << "Day: " << tm.tm_mday << std::endl;
std::cout << "Hour: " << tm.tm_hour << std::endl;
std::cout << "Minute: " << tm.tm_min << std::endl;
std::cout << "Second: " << tm.tm_sec << std::endl;
} else {
std::cout << "Parsing failed." << std::endl;
}
return 0;
}
上記の例では、strptime関数を使用して日時文字列”2022-01-01 12:30:45″を”%Y-%m-%d %H:%M:%S”の形式で解析し、解析された日時情報をtm構造体に格納しました。その後、解析された年、月、日、時、分、秒の情報を出力します。