C++ strptime関数:日付/時刻文字列の解析・変換

C++言語では、日付と時刻の文字列をtm構造体に解析するために、strptime関数が使用されます。そのプロトタイプは以下の通りです:

char *strptime(const char *buf, const char *format, struct tm *tm);

パラメーターの説明:

  1. buf:日付と時刻の文字列を含むC文字列
  2. フォーマット:日時文字列の形式
  3. tm:日時情報を解析した後に保存するために使用するtm構造体のポインタ

返り値:

  1. 解析が成功した場合、buf内で解析されていない部分を指すポインターが返されます。
  2. 解析に失敗した場合は、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構造体に格納しました。その後、解析された年、月、日、時、分、秒の情報を出力します。

bannerAds