C++ 函數(shù) strftime 和時(shí)間格式示例詳解
C++ 函數(shù) strftime 詳解
一、函數(shù)原型
#include <ctime>
size_t strftime(
char* str,
size_t maxsize,
const char* format,
const struct tm* timeptr
);str:指向存儲(chǔ)結(jié)果的字符數(shù)組的指針。maxsize:字符數(shù)組的大小,即最多能存儲(chǔ)的字符數(shù)(包括終止的空字符)。format:格式字符串,指定了日期和時(shí)間的格式。timeptr:指向包含日期和時(shí)間信息的struct tm結(jié)構(gòu)體的指針。
二、功能描述
strftime 函數(shù)根據(jù) format 字符串中指定的格式,將 timeptr 指向的 struct tm 結(jié)構(gòu)體中的日期和時(shí)間信息格式化后存儲(chǔ)到 str 指向的字符數(shù)組中。如果結(jié)果字符串的長(zhǎng)度(不包括終止的空字符)小于 maxsize,則會(huì)在字符串末尾添加一個(gè)空字符作為終止符。如果結(jié)果字符串的長(zhǎng)度等于或大于 maxsize,則結(jié)果會(huì)被截?cái)?,并且不?huì)在末尾添加空字符。
三、格式字符串說(shuō)明
格式字符串 format 可以包含轉(zhuǎn)換說(shuō)明符和普通字符。轉(zhuǎn)換說(shuō)明符以百分號(hào)(%)開(kāi)始,后跟一個(gè)或多個(gè)字符,用于指定日期和時(shí)間的格式。常見(jiàn)的轉(zhuǎn)換說(shuō)明符包括:
%a:星期幾的縮寫(xiě)(如 Sun)。
%A:星期幾的全稱(如 Sunday)。
%b:月份的縮寫(xiě)(如 Jan)。
%B:月份的全稱(如 January)。
%c:本地相應(yīng)的日期和時(shí)間表示。
%d:月份中的天數(shù)(01-31)。
%H:小時(shí)(24小時(shí)制,00-23)。
%I:小時(shí)(12小時(shí)制,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)的時(shí)間表示。
%y:年份的最后兩位數(shù)(00-99)。
%Y:完整年份。
%%:一個(gè)百分號(hào)。
四、返回值
strftime 函數(shù)返回存儲(chǔ)在 str 中的字符數(shù)(不包括終止的空字符)。如果返回值等于 0,則表示出現(xiàn)了錯(cuò)誤。
五、示例代碼
#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)前時(shí)間格式化為 YYYY-MM-DD HH:MM:SS 的形式,并輸出到控制臺(tái)。
strftime 是 C/C++ 標(biāo)準(zhǔn)庫(kù)中用于格式化日期和時(shí)間的函數(shù),定義在 <ctime> 頭文件中。它將 tm 結(jié)構(gòu)體中的時(shí)間信息轉(zhuǎn)換為指定格式的字符串,是處理時(shí)間輸出的核心工具。
到此這篇關(guān)于C++ 函數(shù) strftime 和時(shí)間格式詳解的文章就介紹到這了,更多相關(guān)C++ 函數(shù) strftime內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV使用稀疏光流實(shí)現(xiàn)視頻對(duì)象跟蹤的方法詳解
這篇文章主要為大家詳細(xì)介紹了OpenCV如何使用稀疏光流實(shí)現(xiàn)視頻對(duì)象跟蹤功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02
C++使用JsonCpp庫(kù)操作json格式數(shù)據(jù)示例
這篇文章主要介紹了C++使用JsonCpp庫(kù)操作json格式數(shù)據(jù),結(jié)合實(shí)例形式詳細(xì)分析了JsonCpp庫(kù)的下載及C++使用JsonCpp庫(kù)對(duì)json格式數(shù)據(jù)序列化相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
講解C++編程中Address-of運(yùn)算符&的作用及用法
這篇文章主要介紹了C++編程中Address-of運(yùn)算符&的作用及用法,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01
利用Qt自帶的媒體模塊實(shí)現(xiàn)播放mp4文件
這篇文章主要為大家詳細(xì)介紹了如何使用Qt自帶的媒體模塊,播放mp4等媒體文件功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-04-04
C語(yǔ)言對(duì)磁盤(pán)文件進(jìn)行快速排序簡(jiǎn)單實(shí)例
這篇文章主要介紹了C語(yǔ)言對(duì)磁盤(pán)文件進(jìn)行快速排序簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06
關(guān)于C++面向?qū)ο笤O(shè)計(jì)的訪問(wèn)性問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于C++面向?qū)ο笤O(shè)計(jì)的訪問(wèn)性問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Cocos2d-x UI開(kāi)發(fā)之菜單類使用實(shí)例
這篇文章主要介紹了Cocos2d-x UI開(kāi)發(fā)之菜單類使用實(shí)例,本文的代碼中含有詳細(xì)注釋,需要的朋友可以參考下2014-09-09
C語(yǔ)言實(shí)現(xiàn)掃雷項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)掃雷項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07

