string转年月日时分秒时间类型
时间: 2023-09-03 08:10:33 浏览: 108
在C++中,可以使用std::stringstream和std::get_time来将字符串转换为年月日时分秒时间类型。以下是一个示例代码:
```c++
#include <iostream>
#include <sstream>
#include <iomanip>
#include <ctime>
int main() {
std::string str = "2022-08-26 10:30:00";
std::tm tm = {};
std::istringstream ss(str);
ss >> std::get_time(&tm, "%Y-%m-%d %H:%M:%S");
std::time_t time = std::mktime(&tm);
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;
return 0;
}
```
输出结果将会是:
```
Year: 2022
Month: 8
Day: 26
Hour: 10
Minute: 30
Second: 0
```
在这个示例中,我们使用std::istringstream从字符串中读取时间,并将其存储到std::tm结构中。然后,我们使用std::mktime将std::tm结构转换为std::time_t类型,这是一个表示自1970年1月1日以来经过的秒数的整数。最后,我们打印出每个时间组件的值。
阅读全文