vs2008下c++时间格式如何从yyyy-MM-DD hh:mm:ss改为dd-MM-yyyy hh:mm:ss
时间: 2024-11-28 13:07:21 浏览: 5
C++时间戳转换成日期时间的步骤和示例代码
3星 · 编辑精心推荐
在Visual Studio 2008下的C++中,如果你需要将日期时间字符串从"yyyy-MM-DD HH:mm:ss"格式转换为"dd-MM-yyyy HH:mm:ss"格式,你可以使用`std::stringstream`和一些基本的算术操作以及`std::getline`来分割字符串。以下是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
#include <iomanip>
void convertDateFormat(const std::string& input) {
std::stringstream ss(input);
std::string year, month, day, hour, minute, second;
// 分割输入的年月日和小时分钟秒
std::getline(ss, year, '-');
std::getline(ss, month, '-');
std::getline(ss, day, ' ');
std::getline(ss, hour, ':');
std::getline(ss, minute, ':');
std::getline(ss, second);
// 重组成新的格式
std::string output = std::put_time(std::localtime(&std::mktime(
std::tm{std::stoi(day), std::stoi(month)-1, std::stoi(year), std::stoi(hour), std::stoi(minute), std::stoi(second), 0, 0, 0})), "%d-%m-%Y %H:%M:%S");
std::cout << "Original: " << input << "\nConverted: " << output << "\n";
}
int main() {
std::string input = "2023-05-01 14:30:00";
convertDateFormat(input);
return 0;
}
```
这个程序首先解析输入字符串,然后使用`std::localtime`和`std::mktime`将日期时间信息标准化到本地格式,最后通过`std::put_time`函数将其格式化为目标格式。
阅读全文