怎样在C++中将数字日期格式化回"YYYY-MM-DD"形式?
时间: 2024-09-16 20:01:59 浏览: 43
基于C++核心的全球化多语言i18n时间日期格式化设计源码
在C++中,可以使用`<iomanip>`库中的`setfill()`和`setw()`函数以及`<<`运算符来格式化数字日期为"YYYY-MM-DD"的形式。这里是一个示例:
```cpp
#include <iostream>
#include <sstream>
#include <iomanip>
std::string formatDate(int daysSinceEpoch) {
using namespace std::chrono;
using namespace std::literals;
time_t t = daysSinceEpoch * days_per_year + hours_since_epoch();
tm localTime = *localtime(&t);
ostringstream oss;
oss << std::put_time(&localTime, "%Y-%m-%d");
return oss.str();
}
int main() {
int date_in_days = 16857600; // 假设这是2024-10-13的天数(从1970-01-01算起)
std::string formatted_date = formatDate(date_in_days);
std::cout << "Formatted date: " << formatted_date << std::endl;
return 0;
}
```
这个函数`formatDate`接收自公元1970年1月1日以来的天数,然后将其转换为tm结构,再使用`std::put_time`函数按照指定的格式("YYYY-MM-DD")生成字符串。
阅读全文