string类型的时间转date
时间: 2023-10-17 21:18:12 浏览: 124
可以使用C++中的std::stringstream和std::get_time函数来实现string类型的时间字符串转换为日期类型。以下是一个示例:
```c++
#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>
int main() {
std::string time_str = "2022-05-21 12:30:00";
std::tm time_struct = {};
std::stringstream ss(time_str);
ss >> std::get_time(&time_struct, "%Y-%m-%d %H:%M:%S");
std::time_t timestamp = std::mktime(&time_struct);
std::cout << "Time string: " << time_str << std::endl;
std::cout << "Timestamp: " << timestamp << std::endl;
std::cout << "Date: " << std::put_time(&time_struct, "%Y-%m-%d") << std::endl;
return 0;
}
```
在上面的示例中,我们首先定义了一个字符串变量`time_str`,表示时间。然后,我们定义了一个std::tm结构体变量`time_struct`,它用来存储日期和时间的各个部分。接下来,我们使用std::stringstream将字符串转换为std::tm结构体中的各个字段。我们在std::get_time函数中使用了格式化字符串"%Y-%m-%d %H:%M:%S",它表示日期和时间的格式。然后,我们使用std::mktime将std::tm结构体转换为时间戳,并将结果存储在变量timestamp中。最后,我们使用std::put_time函数将日期格式化为字符串并输出。
阅读全文