std::tm与std::string转化
时间: 2023-11-17 10:00:54 浏览: 168
C++11中std::packaged_task的使用详解
5星 · 资源好评率100%
可以使用`std::strftime`函数将`std::tm`类型转换为`std::string`类型,也可以使用`std::get_time`函数将`std::string`类型转换为`std::tm`类型。具体实现方法如下:
将`std::tm`类型转换为`std::string`类型:
```cpp
#include <iostream>
#include <iomanip>
#include <ctime>
#include <string>
int main() {
std::tm info = {};
info.tm_year = 121; // 年份为2021
info.tm_mon = 6; // 月份为7月
info.tm_mday = 1; // 日期为1日
info.tm_hour = 12; // 小时为12时
info.tm_min = 30; // 分钟为30分
info.tm_sec = 0; // 秒数为0秒
char buffer[80];
std::strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", &info);
std::string str(buffer);
std::cout << str << std::endl;
return 0;
}
```
将`std::string`类型转换为`std::tm`类型:
```cpp
#include <iostream>
#include <iomanip>
#include <ctime>
#include <string>
int main() {
std::string str = "2021-07-01 12:30:00";
std::tm info = {};
std::istringstream ss(str);
ss >> std::get_time(&info, "%Y-%m-%d %H:%M:%S");
std::cout << std::put_time(&info, "%F %T") << std::endl;
return 0;
}
```
阅读全文