在C++中,可以使用<chrono>
庫和<ctime>
庫將Unix時間戳轉換為本地時間,以及將本地時間轉換為Unix時間戳。以下是兩種轉換方法的示例代碼:
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
// Unix時間戳,單位為秒
long long unix_timestamp = 1633016823;
// 使用std::chrono庫將Unix時間戳轉換為time_point對象
std::chrono::system_clock::time_point time_point = std::chrono::system_clock::from_time_t(unix_timestamp);
// 將time_point對象轉換為本地時間(time_t類型)
std::time_t local_time = std::chrono::system_clock::to_time_t(time_point);
// 使用localtime函數將本地時間轉換為字符串格式
char buffer[80];
std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", std::localtime(&local_time));
std::cout << "本地時間: " << buffer << std::endl;
return 0;
}
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
// 獲取當前本地時間
std::time_t local_time = std::time(nullptr);
// 使用localtime函數將本地時間轉換為time_t對象
std::tm* local_tm = std::localtime(&local_time);
// 使用std::chrono庫將本地時間轉換為time_point對象
std::chrono::system_clock::time_point time_point = std::chrono::system_clock::from_time_t(local_time);
// 將time_point對象轉換為Unix時間戳(單位為秒)
long long unix_timestamp = std::chrono::duration_cast<std::chrono::seconds>(time_point.time_since_epoch()).count();
std::cout << "Unix時間戳: " << unix_timestamp << std::endl;
return 0;
}