时间戳转为具体时间 C++
时间: 2024-12-31 19:26:11 浏览: 8
### C++ 时间戳转日期时间
在C++中可以利用标准库中的`<chrono>`以及`<ctime>`来实现将时间戳转换为具体的日期时间。下面展示一段简单的例子,该代码片段展示了如何完成这一操作[^1]。
```cpp
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
// 假设有一个 Unix 时间戳 (秒数)
std::time_t timestamp = 1672531199;
// 将时间戳转化为 tm 结构体
std::tm* timeinfo = std::gmtime(×tamp);
// 输出 UTC 时间
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
std::cout << "UTC Time: " << buffer << '\n';
// 如果想要本地时间,则使用 localtime 函数代替 gmtime
std::tm* localTimeInfo = std::localtime(×tamp);
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", localTimeInfo);
std::cout << "Local Time: " << buffer << '\n';
return 0;
}
```
这段程序首先定义了一个表示Unix纪元以来经过了多少秒的时间戳变量 `timestamp` 。接着通过调用`std::gmtime()`函数将其转换成协调世界时(UTC)下的日历时间结构体(`struct tm`)形式;如果希望获取的是本机所在时区对应的当地时间,则应该改用`std::localtime()`来进行同样的转换工作。最后借助于`strftime()`格式化输出所需的字符串表达方式。
阅读全文