溫馨提示×

c++中unix時間戳與本地時間的轉換方法是什么

c++
小樊
81
2024-09-24 21:32:03
欄目: 編程語言

在C++中,可以使用<chrono>庫和<ctime>庫將Unix時間戳轉換為本地時間,以及將本地時間轉換為Unix時間戳。以下是兩種轉換方法的示例代碼:

  1. 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函數(shù)將本地時間轉換為字符串格式
    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;
}
  1. 本地時間轉Unix時間戳:
#include <iostream>
#include <chrono>
#include <ctime>

int main() {
    // 獲取當前本地時間
    std::time_t local_time = std::time(nullptr);

    // 使用localtime函數(shù)將本地時間轉換為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;
}

0