要在C++中解析字符串日期,可以使用C++的標準庫中的std::istringstream類來將字符串轉換為日期對象。以下是一個示例代碼:
#include <iostream>
#include <sstream>
#include <iomanip>
#include <ctime>
int main() {
std::string date_str = "2022-10-15"; // 日期字符串
tm date = {};
std::istringstream ss(date_str);
ss >> std::get_time(&date, "%Y-%m-%d");
if(ss.fail()) {
std::cerr << "解析日期字符串失敗" << std::endl;
} else {
time_t time = std::mktime(&date);
std::cout << "解析的日期為: " << std::put_time(&date, "%Y-%m-%d") << std::endl;
}
return 0;
}
在這個示例代碼中,我們首先定義了一個日期字符串date_str,然后使用std::istringstream類將其轉換為tm結構體對象date。接著,我們使用std::get_time函數和指定的日期格式"%Y-%m-%d"將字符串解析為日期對象。最后,我們使用std::put_time函數將日期對象打印出來。
需要注意的是,以上代碼中的日期格式字符串"%Y-%m-%d"需要根據日期字符串的實際格式進行調整。如果日期字符串包含時間部分,也可以根據需要調整格式字符串。