A strftime () függvény a C ++ -ban konvertálja az adott dátumot és időpontot egy adott naptári idõponttól null-végû többbájtos karakterlánccá egy formátum-karakterlánc szerint.
Az strftime () függvény a fejlécfájlban van meghatározva.
strftime () prototípus
size_t strftime (char * str, size_t count, const char * formátum, const tm * idő);
Az strftime () függvénynek 4 argumentumra van szüksége: str, count, format és time.
Az idő által jelzett dátum- és időinformáció a formátum értéke alapján null-végű többbájtos karakterré konvertálódik, és az str. Legfeljebb számláló bájtokat írnak.
strftime () Paraméterek
- str: A karaktertömb első elemének mutatója az eredmény tárolására.
- count: Az írható bájtok maximális száma.
- formátum: Egy nullával végződő többbájtos karakterlánc mutatója, amely meghatározza az átalakítás formátumát. A formátum karaktersorozat konverzióspecifikátorból áll (kezdve% -al, opcionálisan E vagy O után) és egyéb közönséges karakterekből.
A hétköznapi karaktereket, beleértve a befejező null karaktert, a kimeneti karakterláncra másoljuk. strftime () formátum specifikátorokKonverzióspecifikátor Leírás Használt mezők % Írja a% karaktert n Új sor karaktert ír t Vízszintes fül karaktert ír Év Y Az év négy számjegyét írja, pl. 2011 tm_year E Y Az év 4 számjegyét írja a területi beállítás alternatív ábrázolásában tm_year y Írja az év utolsó 2 számjegyét, tartomány (00, 99) tm_year Oy Az év utolsó 2 számjegyét írja a területi beállítás alternatív ábrázolásában tm_year E y Írja az évet a területi beállítás alternatív naptári periódusától eltolva,% EC (területi beállításoktól függ) tm_year C Írja az év első 2 számjegyét, tartomány (00,99) tm_year EC Írja a bázisév (periódus) nevét a területi beállítás alternatív ábrázolásában, tm_year G Írja az ISO 8601 szabvány szerinti heti alapú évet, vagyis azt az évet, amely tartalmazza a megadott hetet. tm_year, tm_wday, tm_yday g Írja az ISO 8601 utolsó 2 számjegyét, heti alapon, vagyis azt az évet, amely tartalmazza a megadott hetet (tartomány (00,99)). tm_year, tm_wday, tm_yday Hónap b Rövidített havi nevet ír, pl. Jan tm_mon h Ugyanaz, mint b tm_mon B Írja a teljes hónap nevét, pl. Január tm_mon m A hónapot tizedes számként írja, tartomány (01,12) tm_mon Om Hónapot ír a területi beállítás alternatív numerikus rendszerével tm_mon Hét U Az év hetét tizedes számként írja 00-tól 53-ig (vasárnap a hét első napja) tm_year, tm_wday, tm_yday OU Az év hetét% U-val írja az alternatív numerikus rendszer használatával tm_year, tm_wday, tm_yday W Az év hetét tizedes számként írja 00-tól 53-ig (hétfő a hét első napja) tm_year, tm_wday, tm_yday OW Az év hetét% W-vel írja az alternatív numerikus rendszer használatával tm_year, tm_wday, tm_yday V Írja az év ISO 8601 hetét (tartomány (01,53)). tm_year, tm_wday, tm_yday OV Írja az év hetét,% V százalékban, az alternatív numerikus rendszer használatával tm_year, tm_wday, tm_yday Az év / hónap napja j Tízes számként írja be az év napját, tartomány (001 366) tm_yday d A hónap napját tizedes számként írja, tartomány (01,31) tm_nap Od Írja a hónap napját,% d% -ban, az alternatív numerikus rendszer használatával tm_nap e A hónap napját tizedes számként írja, tartomány (1,31) tm_nap Oe Írja a hónap napját,% e szerint, az alternatív numerikus rendszer használatával tm_nap A hét napja a Rövidített hétköznapi nevet ír, pl. Péntek (lokálfüggő) tm_wday A Írja a teljes hétköznap nevét, pl. Péntek (lokálfüggő) tm_wday w A hétköznapokat tizedes számként írja, tartomány (0-6) (a vasárnap 0) tm_wday Ow A hétköznapokat% w-ra írja, az alternatív numerikus rendszer használatával tm_wday u A hétköznapokat tizedesjegyként írja, ahol a hétfő 1 (ISO 8601 formátum), tartomány (1–7) tm_wday Ou A hétköznapokat% u szerint írja, az alternatív numerikus rendszer használatával tm_wday Óra, perc, másodperc H Az órát tizedes számként írja, tartomány (00,23) tm_hour OH Az órát% H-val írja, az alternatív numerikus rendszer használatával tm_hour én Az órát tizedes számként írja, tartomány (01,12) tm_hour OI Az órát% I-vel írja, az alternatív numerikus rendszer használatával tm_hour M A percet tízes számként írja, tartomány (00,59) tm_min OM A percet% M-ben írja, az alternatív numerikus rendszer használatával tm_min S Második számot ír tizedes számként, tartomány (00,60) tm_sec OS Másodszor írja,% S szerint, az alternatív numerikus rendszer használatával tm_sec Egyéb c Írja a szokásos dátum és idő karakterláncot, pl. 2010. október 17., 04:41:13 (helytől függ) minden Ec Írja a területi beállítás alternatív dátum és idő karakterláncát minden x Lokalizált dátumábrázolást ír (lokálfüggő) minden Volt Írja a területi beállítás alternatív dátumábrázolását minden x Lokalizált időábrázolást ír (lokálfüggő) minden VOLT Írja a területi beállítás alternatív időábrázolását minden D Megfelel a "% m /% d /% y" -nak tm_mon, tm_mday, tm_year F Egyenértékű: "% Y-% m-% d" tm_mon, tm_mday, tm_year r Lokalizált 12 órás óraidőt ír tm_hour, tm_min, tm_sec R A "% H:% M" egyenértékű tm_hour, tm_min T Megfelel a "% H:% M:% S" értéknek tm_hour, tm_min, tm_sec P Írja lokalizált am vagy pm (lokálfüggő) tm_hour z UTC-eltolást ír ISO 8601 formátumban (pl. -0545), vagy nincs karakter, ha az időzóna információ nem áll rendelkezésre tm_isdst Z Írja az időzóna nevét vagy rövidítését, vagy semmit, ha az időzóna információ nem áll rendelkezésre (területi beállításoktól függ) tm_isdst - idő: A konvertálandó dátum és idő információ.
strftime () Visszatérési érték
- Siker esetén az strftime () függvény visszaadja a karaktertömbbe írt bájtok számát, amelyre az str mutat, a végződő ' 0' nélkül.
- Ha elérte a számot, mielőtt a teljes karakterláncot el lehetne tárolni, a 0 visszatér, és a tartalom nincs meghatározva.
Példa: Hogyan működik az strftime () függvény?
#include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; char date_string(100); char time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); strftime(date_string, 50, "Today is %B %d, %Y", curr_tm); strftime(time_string, 50, "Current time is %T", curr_tm); cout << date_string << endl; cout << time_string << endl; return 0; )
A program futtatásakor a kimenet a következő lesz:
Ma 2017. április 21. van. Jelenlegi idő 11:20:42