strftime
是 C++ 標(biāo)準(zhǔn)庫 <ctime>
中的一個(gè)函數(shù),用于將 tm
結(jié)構(gòu)體(通常包含日期和時(shí)間信息)格式化為一個(gè)字符串
#include<iostream>
#include <ctime>
#include <iomanip>
int main() {
// 獲取當(dāng)前時(shí)間
std::time_t now = std::time(nullptr);
// 將 time_t 轉(zhuǎn)換為 tm 結(jié)構(gòu)體
std::tm* local_time = std::localtime(&now);
// 創(chuàng)建一個(gè)足夠大的字符數(shù)組來存儲(chǔ)格式化后的時(shí)間戳字符串
const size_t buffer_size = 100;
char buffer[buffer_size];
// 使用 strftime 將 tm 結(jié)構(gòu)體格式化為字符串
std::strftime(buffer, buffer_size, "%Y-%m-%d %H:%M:%S", local_time);
// 輸出格式化后的時(shí)間戳字符串
std::cout << "Formatted timestamp: "<< buffer<< std::endl;
return 0;
}
在這個(gè)示例中,我們首先獲取當(dāng)前時(shí)間(以 time_t
類型表示),然后將其轉(zhuǎn)換為 tm
結(jié)構(gòu)體。接下來,我們創(chuàng)建一個(gè)足夠大的字符數(shù)組來存儲(chǔ)格式化后的時(shí)間戳字符串。最后,我們使用 strftime
函數(shù)將 tm
結(jié)構(gòu)體格式化為字符串,并將結(jié)果輸出到控制臺(tái)。
注意:strftime
函數(shù)的第二個(gè)參數(shù)是緩沖區(qū)的大小,確保緩沖區(qū)足夠大以容納格式化后的字符串。否則,可能會(huì)導(dǎo)致緩沖區(qū)溢出錯(cuò)誤。