c++ time from string
时间: 2024-05-26 13:06:56 浏览: 101
C++中的时间字符串转换是指将字符串表示的时间转换为时间类型的操作。在C++中,可以使用`std::istringstream`和`std::get_time`函数来实现时间字符串的转换。
下面是一个示例代码,演示了如何将时间字符串转换为`std::tm`类型的时间结构体:
```cpp
#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>
int main() {
std::string timeStr = "2022-01-01 12:34:56";
std::tm timeStruct = {};
std::istringstream iss(timeStr);
iss >> std::get_time(&timeStruct, "%Y-%m-%d %H:%M:%S");
if (iss.fail()) {
std::cout << "时间字符串解析失败!" << std::endl;
} else {
std::cout << "年份:" << timeStruct.tm_year + 1900 << std::endl;
std::cout << "月份:" << timeStruct.tm_mon + 1 << std::endl;
std::cout << "日期:" << timeStruct.tm_mday << std::endl;
std::cout << "小时:" << timeStruct.tm_hour << std::endl;
std::cout << "分钟:" << timeStruct.tm_min << std::endl;
std::cout << "秒钟:" << timeStruct.tm_sec << std::endl;
}
return 0;
}
```
在上述代码中,首先定义了一个时间字符串`timeStr`,表示为"2022-01-01 12:34:56"。然后创建了一个`std::tm`类型的时间结构体`timeStruct`,并初始化为空。
接下来,使用`std::istringstream`将时间字符串输入流化,并使用`std::get_time`函数将时间字符串解析为时间结构体。解析时需要指定时间字符串的格式,这里使用"%Y-%m-%d %H:%M:%S"表示年-月-日 时:分:秒的格式。
如果解析成功,可以通过访问`timeStruct`的成员变量获取具体的年、月、日、时、分、秒等信息。
如果解析失败,可以根据需要进行错误处理。
阅读全文