C++ 时间戳转换:将时间戳转换为日期和时间格式
std::to_string 函数用于将各种数据类型转换为字符串,但它无法直接将时间戳转换为日期和时间格式。要处理时间戳,可以使用 C++ 标准库中的 <ctime> 头文件提供的函数来将时间戳转换为日期和时间。
以下是一个示例代码,演示如何将时间戳转换为日期和时间字符串:
#include <iostream>
#include <ctime>
std::string timestampToString(time_t timestamp) {
struct tm* timeinfo;
char buffer[80];
// 将时间戳转换为本地时间
timeinfo = localtime(×tamp);
// 格式化日期和时间字符串
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
return buffer;
}
int main() {
time_t timestamp = std::time(nullptr);
std::cout << "Current timestamp: " << timestamp << std::endl;
std::cout << "Formatted timestamp: " << timestampToString(timestamp) << std::endl;
return 0;
}
这段代码首先定义了一个 timestampToString 函数,该函数接受一个时间戳作为参数,并将其转换为日期和时间字符串。函数内部使用 localtime 函数将时间戳转换为 struct tm 结构体,然后使用 strftime 函数将结构体中的日期和时间格式化为字符串。
在主函数中,我们获取当前时间戳,并使用 std::cout 打印原始时间戳和转换后的日期和时间字符串。
运行此代码,将输出类似以下内容:
Current timestamp: 1639444318
Formatted timestamp: 2021-12-14 14:58:38
请注意,strftime 函数的格式字符串可以根据需要进行更改,以输出所需的日期和时间格式。
原文地址: https://www.cveoy.top/t/topic/p3Gm 著作权归作者所有。请勿转载和采集!