如何在C++中使用strftime格式化時(shí)間

c++
小樊
92
2024-09-06 12:29:08

strftime 是 C++ 標(biāo)準(zhǔn)庫(kù)中的一個(gè)函數(shù),用于將 tm 結(jié)構(gòu)體(包含日期和時(shí)間信息)格式化為字符串。以下是如何在 C++ 中使用 strftime 的示例:

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

int main() {
    time_t now = time(0); // 獲取當(dāng)前時(shí)間
    struct tm *timeinfo = localtime(&now); // 轉(zhuǎn)換為本地時(shí)間

    char buffer[80]; // 存儲(chǔ)格式化后的時(shí)間字符串的緩沖區(qū)

    // 使用 strftime 格式化時(shí)間
    strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);

    std::cout << "Formatted time: "<< buffer<< std::endl;

    return 0;
}

在這個(gè)示例中,我們首先獲取當(dāng)前時(shí)間(以 time_t 類型表示),然后將其轉(zhuǎn)換為 tm 結(jié)構(gòu)體(本地時(shí)間)。接下來(lái),我們創(chuàng)建一個(gè)字符緩沖區(qū),用于存儲(chǔ)格式化后的時(shí)間字符串。最后,我們使用 strftime 函數(shù)將 tm 結(jié)構(gòu)體格式化為指定格式的字符串,并將結(jié)果輸出到控制臺(tái)。

strftime 函數(shù)的第一個(gè)參數(shù)是字符緩沖區(qū),第二個(gè)參數(shù)是緩沖區(qū)的大小,第三個(gè)參數(shù)是格式化字符串,第四個(gè)參數(shù)是要格式化的 tm 結(jié)構(gòu)體。格式化字符串可以包含各種格式說(shuō)明符,例如 %Y 表示年份,%m 表示月份,%d 表示日期,%H 表示小時(shí),%M 表示分鐘,%S 表示秒等。更多格式說(shuō)明符可以參考 cppreference.com

0