Funcția strftime () în C ++ convertește data și ora date dintr-un anumit timp calendaristic timp într-un șir de caractere multibyte terminat nul conform unui șir de format.
Funcția strftime () este definită în fișierul antet.
strftime () prototip
size_t strftime (char * str, size_t count, const char * format, const tm * time);
Funcția strftime () are 4 argumente: str, count, format și time.
Informațiile despre dată și oră indicate de timp sunt convertite într-un caracter multibyte terminat nul pe baza valorii formatului și sunt stocate în matricea indicată de str. Se scriu cel mult numărul de octeți.
strftime () Parametri
- str: Pointer către primul element al matricei de caractere pentru a stoca rezultatul.
- count: Numărul maxim de octeți de scris.
- format: Pointer către un șir de caractere multibyte terminat nul, specificând formatul conversiei. Șirul de format este format din specificatorul de conversie (începând cu% și opțional urmat de E sau O) și alte caractere obișnuite.
Caracterele obișnuite, inclusiv caracterul nul care se termină, sunt copiate așa cum este în șirul de ieșire. specificatori de format strftime ()Specificator de conversie Descriere Câmpuri folosite % Scrie caracterul% n Scrie un personaj de linie nouă t Scrie caracter tab tab orizontal An Da Scrie 4 cifre ale anului, de ex. 2011 tm_year EY Scrie 4 cifre ale anului în reprezentarea alternativă a locației tm_year y Scrie ultimele 2 cifre ale anului, intervalul (00, 99) tm_year Oy Scrie ultimele 2 cifre ale anului în reprezentarea alternativă a locației tm_year Vai Scrie anul ca decalaj de la perioada calendaristică alternativă locală% EC (dependentă de localizare) tm_year C Scrie primele 2 cifre ale anului, intervalul (00,99) tm_year CE Scrie numele anului de bază (perioada) în reprezentarea alternativă a localizării, tm_year G Scrie anul ISO 8601 săptămânal, adică anul care conține săptămâna specificată. tm_year, tm_wday, tm_yday g Scrie ultimele 2 cifre ale anului ISO 8601 pe săptămână, adică anul care conține săptămâna specificată (interval (00,99)). tm_year, tm_wday, tm_yday Lună b Scrie numele prescurtat al lunii, de ex. Ianuarie tm_mon h La fel ca b tm_mon B Scrie numele lunii întregi, de ex. Ianuarie tm_mon m Scrie luna ca număr zecimal, interval (01,12) tm_mon Om Scrie luna folosind sistemul numeric alternativ al localizării tm_mon Săptămână U Scrie săptămâna anului ca număr zecimal de la 00 la 53 (duminica este prima zi a săptămânii) tm_year, tm_wday, tm_yday OU Scrie săptămâna anului ca% U folosind sistemul numeric alternativ tm_year, tm_wday, tm_yday W Scrie săptămâna anului ca număr zecimal de la 00 la 53 (luni este prima zi a săptămânii) tm_year, tm_wday, tm_yday AU Scrie săptămâna anului ca% W folosind sistemul numeric alternativ tm_year, tm_wday, tm_yday V Scrie ISO 8601 săptămâna anului (interval (01,53)). tm_year, tm_wday, tm_yday OV Scrie săptămâna anului, ca de% V, folosind sistemul numeric alternativ tm_year, tm_wday, tm_yday Ziua anului / lunii j Scrie ziua anului ca număr zecimal, interval (001,366) tm_yday d Scrie ziua lunii ca număr zecimal, interval (01,31) tm_mday Od Scrie ziua lunii, ca de% d, utilizând sistemul numeric alternativ tm_mday e Scrie ziua lunii ca număr zecimal, interval (1,31) tm_mday Oe Scrie ziua lunii, ca de% e, folosind sistemul numeric alternativ tm_mday Zi a săptămânii A Scrie numele prescurtat al zilei săptămânii, de ex. Vin (dependent de localizare) tm_wday A Scrie numele întregii zile săptămânale, de ex. Vineri (în funcție de regiune) tm_wday w Scrie ziua săptămânii ca număr zecimal, interval (0-6) (duminica este 0) tm_wday Au Scrie ziua săptămânii ca% w, folosind sistemul numeric alternativ tm_wday tu Scrie ziua săptămânii ca număr zecimal, unde luni este 1 (format ISO 8601), interval (1-7) tm_wday Tu Scrie ziua săptămânii ca% u, folosind sistemul numeric alternativ tm_wday Oră, minut, secundă H Scrie ora ca număr zecimal, interval (00,23) tm_hour OH Scrie ora ca% H, folosind sistemul numeric alternativ tm_hour Eu Scrie ora ca număr zecimal, interval (01,12) tm_hour OI Scrie ora ca de% I, utilizând sistemul numeric alternativ tm_hour M Scrie minutul ca număr zecimal, interval (00,59) tm_min OM Scrie minut ca% M, folosind sistemul numeric alternativ tm_min S Scrie al doilea ca număr zecimal, interval (00,60) tm_sec OS Scrie în al doilea rând ca% S, folosind sistemul numeric alternativ tm_sec Alte c Scrie șir de date și oră standard, de ex. Duminică 17 octombrie 04:41:13 2010 (în funcție de regiune toate Ec Scrie șirul alternativ de dată și oră toate X Scrie reprezentarea datei localizate (în funcție de regiune) toate Ex Scrie reprezentarea alternativă a datei locale toate X Scrie reprezentarea timpului localizat (în funcție de regiune) toate EX Scrie reprezentarea alternativă a timpului local toate D Echivalent cu „% m /% d /% y” tm_mon, tm_mday, tm_year F Echivalent cu „% Y-% m-% d” tm_mon, tm_mday, tm_year r Scrie ora de ceas localizată de 12 ore tm_hour, tm_min, tm_sec R Echivalent cu „% H:% M” tm_hour, tm_min T Echivalent cu „% H:% M:% S tm_hour, tm_min, tm_sec P Scrie localizat am sau pm (dependent de localizare) tm_hour z scrie offset de la UTC în format ISO 8601 (de ex. -0545) sau fără caractere dacă informațiile despre fusul orar nu sunt disponibile tm_isdst Z Scrie numele sau abrevierea fusului orar sau nimic dacă informațiile despre fusul orar nu sunt disponibile (în funcție de regiune) tm_isdst - ora: data și ora informațiilor de convertit.
strftime () Valoare returnată
- La succes, funcția strftime () returnează numărul de octeți scrise în matricea de caractere indicată de str, fără a include terminarea ' 0'.
- Dacă numărul a fost atins înainte ca întregul șir să poată fi stocat, 0 este returnat și conținutul este nedefinit.
Exemplu: Cum funcționează funcția strftime ()?
#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; )
Când rulați programul, ieșirea va fi:
Astăzi este 21 aprilie 2017 Ora actuală este 11:20:42