溫馨提示×

C++時間戳的轉(zhuǎn)換與格式化方法

c++
小樊
97
2024-08-19 20:30:30
欄目: 編程語言

在C++中,可以使用std::chrono庫來處理時間戳的轉(zhuǎn)換和格式化。以下是一個簡單的示例,演示如何將時間戳轉(zhuǎn)換為特定格式的日期時間字符串:

#include <iostream>
#include <chrono>
#include <ctime>
#include <iomanip>

int main() {
    // 獲取當前時間戳
    auto now = std::chrono::system_clock::now();
    auto now_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);
    auto epoch = now_ms.time_since_epoch();
    auto value = std::chrono::duration_cast<std::chrono::milliseconds>(epoch);

    // 轉(zhuǎn)換為時間_t類型
    std::time_t tt = std::chrono::system_clock::to_time_t(now);
    std::tm tm = *std::localtime(&tt);

    // 格式化日期時間字符串
    std::ostringstream oss;
    oss << std::put_time(&tm, "%Y-%m-%d %H:%M:%S");
    std::string datetime_str = oss.str();

    std::cout << "當前時間戳:" << value.count() << std::endl;
    std::cout << "當前時間日期:" << datetime_str << std::endl;

    return 0;
}

在上面的示例中,首先獲取當前時間戳,并將其轉(zhuǎn)換為time_t類型。然后使用std::put_time函數(shù)將tm結(jié)構(gòu)體格式化為特定的日期時間字符串,并輸出到控制臺。

需要注意的是,std::put_time函數(shù)需要C++11或更高版本支持。如果你的編譯器不支持該函數(shù),你可以使用其他方法來格式化日期時間字符串,比如使用std::strftime函數(shù)。

0