在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
庫提供了更現代和時間操作的方法。