C++ 函數(shù) strftime 和時間格式示例詳解
C++ 函數(shù) strftime 詳解
一、函數(shù)原型
#include <ctime>
size_t strftime(
char* str,
size_t maxsize,
const char* format,
const struct tm* timeptr
);str:指向存儲結(jié)果的字符數(shù)組的指針。maxsize:字符數(shù)組的大小,即最多能存儲的字符數(shù)(包括終止的空字符)。format:格式字符串,指定了日期和時間的格式。timeptr:指向包含日期和時間信息的struct tm結(jié)構(gòu)體的指針。
二、功能描述
strftime 函數(shù)根據(jù) format 字符串中指定的格式,將 timeptr 指向的 struct tm 結(jié)構(gòu)體中的日期和時間信息格式化后存儲到 str 指向的字符數(shù)組中。如果結(jié)果字符串的長度(不包括終止的空字符)小于 maxsize,則會在字符串末尾添加一個空字符作為終止符。如果結(jié)果字符串的長度等于或大于 maxsize,則結(jié)果會被截斷,并且不會在末尾添加空字符。
三、格式字符串說明
格式字符串 format 可以包含轉(zhuǎn)換說明符和普通字符。轉(zhuǎn)換說明符以百分號(%)開始,后跟一個或多個字符,用于指定日期和時間的格式。常見的轉(zhuǎn)換說明符包括:
%a:星期幾的縮寫(如 Sun)。
%A:星期幾的全稱(如 Sunday)。
%b:月份的縮寫(如 Jan)。
%B:月份的全稱(如 January)。
%c:本地相應(yīng)的日期和時間表示。
%d:月份中的天數(shù)(01-31)。
%H:小時(24小時制,00-23)。
%I:小時(12小時制,01-12)。
%j:一年中的天數(shù)(001-366)。
%m:月份(01-12)。
%M:分鐘(00-59)。
%p:本地 AM 或 PM 的相應(yīng)符。
%S:秒(00-60,允許閏秒)。
%U:一年中的第幾周(00-53,星期天為每周的第一天)。
%w:星期幾(0-6,星期天為 0)。
%W:一年中的第幾周(00-53,星期一為每周的第一天)。
%x:本地相應(yīng)的日期表示。
%X:本地相應(yīng)的時間表示。
%y:年份的最后兩位數(shù)(00-99)。
%Y:完整年份。
%%:一個百分號。
四、返回值
strftime 函數(shù)返回存儲在 str 中的字符數(shù)(不包括終止的空字符)。如果返回值等于 0,則表示出現(xiàn)了錯誤。
五、示例代碼
#include <iostream>
#include <iomanip>
#include <ctime>
int main() {
std::time_t t = std::time(nullptr);
std::tm* now = std::localtime(&t);
char buffer[100];
std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", now);
std::cout << "Formatted time: " << buffer << std::endl;
return 0;
}這段代碼將當(dāng)前時間格式化為 YYYY-MM-DD HH:MM:SS 的形式,并輸出到控制臺。
strftime 是 C/C++ 標(biāo)準(zhǔn)庫中用于格式化日期和時間的函數(shù),定義在 <ctime> 頭文件中。它將 tm 結(jié)構(gòu)體中的時間信息轉(zhuǎn)換為指定格式的字符串,是處理時間輸出的核心工具。
到此這篇關(guān)于C++ 函數(shù) strftime 和時間格式詳解的文章就介紹到這了,更多相關(guān)C++ 函數(shù) strftime內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于c語言中回調(diào)函數(shù)的理解
這篇文章主要給大家介紹了關(guān)于c語言中回調(diào)函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
win10系統(tǒng)VS2019配置點云庫PCL1.12.1的詳細(xì)流程
這篇文章主要介紹了win10系統(tǒng)VS2019配置點云庫PCL1.12.1的教程與經(jīng)驗總結(jié),本文記錄小白在配置過程中踩過的一些小坑,需要的朋友可以參考下2022-07-07
C語言數(shù)據(jù)結(jié)構(gòu)進(jìn)階之棧和隊列的實現(xiàn)
棧和隊列,嚴(yán)格意義上來說,也屬于線性表,因為它們也都用于存儲邏輯關(guān)系為 "一對一" 的數(shù)據(jù),但由于它們比較特殊,因此將其單獨作為一章,做重點講解2021-11-11

