c++ 时间格式如何从yyyy-MM-DD hh:mm:ss改为dd-MM-yyyy hh:mm:ss
时间: 2024-11-28 09:07:18 浏览: 5
C++时间戳转换成日期时间的步骤和示例代码
3星 · 编辑精心推荐
在C++中,如果你有一个日期时间字符串按照"yyyy-MM-DD HH:mm:ss"的格式,而需要转换成"dd-MM-yyyy HH:mm:ss",你可以使用`std::istringstream`和`std::ostringstream`或者其他相关的日期时间库来进行格式转换。例如,如果你使用的是`std::chrono`和`std::strftime`,可以这样做:
```cpp
#include <iostream>
#include <sstream>
#include <iomanip>
#include <chrono>
// 将日期时间从一种格式转为另一种
std::string convertDateFormat(const std::string& input, const char* fromFormat, const char* toFormat) {
auto time_point = std::chrono::parse(fromFormat, input);
if (time_point.time_since_epoch().count() == 0) {
// 如果解析失败,返回原字符串
return input;
}
std::ostringstream oss;
oss << std::put_time(std::localtime(time_point.time_since_epoch().count()), toFormat);
return oss.str();
}
int main() {
std::string input_date = "2023-05-19 14:30:00";
std::string output_date = convertDateFormat(input_date, "%Y-%m-%d %H:%M:%S", "%d-%m-%Y %H:%M:%S");
std::cout << "Original Date: " << input_date << "\nConverted Date: " << output_date << "\n";
return 0;
}
```
在这个例子中,`%Y-%m-%d %H:%M:%S`是输入格式的占位符,`%d-%m-%Y %H:%M:%S`是输出格式。如果输入字符串不符合`fromFormat`,函数将返回原始字符串。
阅读全文