在C++中,计算Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数)的方法有多种。以下是两种常见的方法:
方法一:使用time()
函数和mktime()
函数
#include <iostream>
#include <ctime>
int main() {
// 获取当前时间的秒数(Unix时间戳)
time_t now = time(0);
std::cout << "当前Unix时间戳:" << now << std::endl;
// 将Unix时间戳转换为可读时间
struct tm *timeinfo = localtime(&now);
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
std::cout << "当前时间:" << buffer << std::endl;
return 0;
}
方法二:使用chrono
库
#include <iostream>
#include <chrono>
int main() {
// 获取当前时间的秒数(Unix时间戳)
auto now = std::chrono::system_clock::now();
std::time_t now_time = std::chrono::system_clock::to_time_t(now);
std::cout << "当前Unix时间戳:" << now_time << std::endl;
return 0;
}
这两种方法都可以用于计算Unix时间戳。time()
函数和mktime()
函数更传统,而chrono
库提供了更现代和时间操作的方法。