// 转换为本地时间 tm* local_n_days_ago = localtime(&n_days_ago);
时间: 2024-02-15 10:04:21 浏览: 63
CC++日期时间time_t与struct_tm转换
5星 · 资源好评率100%
谢谢您的提醒,您是对的。我的回答中有误,这里应该使用gmtime而不是localtime来将time_t转换为tm结构体,因为localtime会返回本地时间,而不是UTC时间。以下是修正后的C++代码:
```cpp
#include <iostream>
#include <ctime>
using namespace std;
int main() {
int n;
cin >> n;
// 获取当前时间
time_t current_time = time(0);
// 转换为UTC时间
tm* utc_time = gmtime(¤t_time);
// 计算n天前的时间
utc_time->tm_mday -= n;
// 将时间转换为time_t
time_t n_days_ago = mktime(utc_time);
// 转换为UTC时间
tm* utc_n_days_ago = gmtime(&n_days_ago);
// 输出n天前的日期
cout << utc_n_days_ago->tm_year + 1900 << "-" << utc_n_days_ago->tm_mon + 1 << "-" << utc_n_days_ago->tm_mday << endl;
return 0;
}
```
请将上述代码中的`n`替换为您想要的天数即可。注意,这里输出的日期格式为YYYY-MM-DD。
阅读全文