Funkcija strftime () u C ++ pretvara zadani datum i vrijeme iz zadanog kalendarskog vremena u null-terminirani višebajtni niz znakova prema nizu formata.
Funkcija strftime () definirana je u zaglavnoj datoteci.
prototip strftime ()
size_t strftime (char * str, count_t count, const char * format, const tm * vrijeme);
Funkcija strftime () uzima 4 argumenta: str, count, format i vrijeme.
Podaci o datumu i vremenu na koje vrijeme ukazuje pretvaraju se u višebajtni znak s nulom završava na temelju vrijednosti formata i pohranjuju se u niz na koji pokazuje str. Napisano je najviše bajtova prebrojavanja.
strftime () Parametri
- str: Pokazivač na prvi element niza znakova za spremanje rezultata.
- count: Maksimalan broj bajtova za pisanje.
- format: Pokazivač na višebajtni niz znakova s nulom završavajući koji specificira format pretvorbe. Niz formata sastoji se od specifikatora pretvorbe (koji započinje s%, a po želji slijedi E ili O) i ostalih običnih znakova.
Obični znakovi, uključujući završni null znak, kopiraju se u izlazni niz. specifikatori formata strftime ()Specifikacija pretvorbe Opis Korištena polja % Zapisuje lik% n Piše znak za novi red t Zapisuje znak vodoravne kartice Godina Y Zapisuje 4 znamenke godine, npr. 2011 tm_godina EY Zapisuje 4 znamenke godine u alternativnom prikazu jezika tm_godina g Zapisuje zadnje dvije znamenke godine, raspon (00, 99) tm_godina Oj Zapisuje posljednje dvije znamenke godine u alternativnom predstavljanju jezika tm_godina Ej Zapisuje godinu kao odmak od alternativnog kalendarskog razdoblja lokalizacije% EC (ovisno o lokalnom jeziku) tm_godina C Zapisuje prve dvije znamenke u godini, raspon (00,99) tm_godina EZ Zapisuje ime bazne godine (razdoblja) u alternativnom predstavljanju lokaliteta, tm_godina G Zapisuje ISO 8601 sedmičnu godinu, tj. Godinu koja sadrži navedeni tjedan. tm_year, tm_wday, tm_yday g Zapisuje posljednje dvije znamenke godine temeljene na tjednu ISO 8601, tj. Godine koja sadrži navedeni tjedan (raspon (00,99)). tm_year, tm_wday, tm_yday Mjesec b Piše skraćeni naziv mjeseca, npr. Jan tm_mon h Isto kao b tm_mon B Piše puni naziv mjeseca, npr. Siječanj tm_mon m Zapisuje mjesec kao decimalni broj, raspon (01,12) tm_mon Om Piše mjesec koristeći alternativni numerički sustav jezika tm_mon Tjedan U Zapisuje tjedan u godini kao decimalni broj od 00 do 53 (nedjelja je prvi dan u tjednu) tm_year, tm_wday, tm_yday OU Zapisuje tjedan u godini kao% U koristeći alternativni numerički sustav tm_year, tm_wday, tm_yday W Zapisuje tjedan u godini kao decimalni broj od 00 do 53 (ponedjeljak je prvi dan u tjednu) tm_year, tm_wday, tm_yday OW Zapisuje tjedan u godini kao% W koristeći alternativni numerički sustav tm_year, tm_wday, tm_yday V Piše ISO 8601 tjedan u godini (raspon (01,53)). tm_year, tm_wday, tm_yday OV Zapisuje tjedan u godini kao% V, koristeći alternativni numerički sustav tm_year, tm_wday, tm_yday Dan u godini / mjesecu j Zapisuje dan u godini kao decimalni broj, raspon (001.366) tm_yday d Zapisuje dan u mjesecu kao decimalni broj, raspon (01,31) tm_mday Od Zapisuje dan u mjesecu kao% d, koristeći alternativni numerički sustav tm_mday e Zapisuje dan u mjesecu kao decimalni broj, raspon (1,31) tm_mday Oe Zapisuje dan u mjesecu kao% e, koristeći alternativni numerički sustav tm_mday Dan u tjednu a Piše skraćeni naziv radnog dana, npr. Petak (ovisno o lokalnom jeziku) tm_wday A Piše puni naziv radnog dana, npr. Petak (ovisno o lokalnom jeziku) tm_wday w Zapisuje radni dan kao decimalni broj, raspon (0-6) (nedjelja je 0) tm_wday Au Zapisuje radni dan kao% w, koristeći alternativni numerički sustav tm_wday u Zapisuje radni dan kao decimalni broj, gdje je ponedjeljak 1 (format ISO 8601), raspon (1-7) tm_wday Ou Zapisuje radni dan kao% u, koristeći alternativni numerički sustav tm_wday Sat, minuta, sekunda H Zapisuje sat kao decimalni broj, raspon (00,23) tm_hour OH Zapisuje sat kao% H, koristeći alternativni numerički sustav tm_hour Ja Zapisuje sat kao decimalni broj, raspon (01,12) tm_hour OI Zapisuje sat kao% I, koristeći alternativni numerički sustav tm_hour M Zapisuje minutu kao decimalni broj, raspon (00,59) tm_min OM Zapisuje minutu kao% M, koristeći alternativni numerički sustav tm_min S Zapisuje drugo kao decimalni broj, raspon (00,60) tm_sec OS Zapisuje drugo kao% S, koristeći alternativni numerički sustav tm_sec Ostalo c Zapisuje standardni niz datuma i vremena, npr. Ned, 17. listopada 04:41:13, 2010 (ovisno o lokalnom jeziku) svi Ec Zapisuje alternativni datumski i vremenski niz lokalnog jezika svi x Zapisuje lokalizirani prikaz datuma (ovisno o lokalnom jeziku) svi Pr Napisuje zamjenski prikaz datuma na lokalnom jeziku svi x Zapisuje lokalizirano predstavljanje vremena (ovisno o lokalnom jeziku) svi Npr Piše lokalno predstavljanje alternativnog vremena svi D Ekvivalentno "% m /% d /% y" tm_mon, tm_mday, tm_year F Ekvivalentno "% Y-% m-% d" tm_mon, tm_mday, tm_year r Zapisuje lokalizirano 12-satno vrijeme sata tm_hour, tm_min, tm_sec R Ekvivalentno "% H:% M" tm_hour, tm_min T Ekvivalentno "% H:% M:% S tm_hour, tm_min, tm_sec Str Zapisuje lokalizirano ujutro ili popodne (ovisno o lokalnom jeziku) tm_hour z zapisuje pomak od UTC-a u ISO 8601 formatu (npr. -0545) ili nema znakova ako podaci o vremenskoj zoni nisu dostupni tm_isdst Z Zapisuje naziv ili kraticu vremenske zone ili ništa ako podaci o vremenskoj zoni nisu dostupni (ovisno o lokalnom okruženju) tm_isdst - vrijeme: Podaci o datumu i vremenu koje treba pretvoriti.
strftime () Povratna vrijednost
- Nakon uspjeha funkcija strftime () vraća broj bajtova zapisanih u niz znakova na koji pokazuje str, ne uključujući završetak ' 0'.
- Ako je postignuto brojanje prije nego što je cijeli niz mogao biti pohranjen, vraća se 0 i sadržaj je nedefiniran.
Primjer: Kako funkcionira funkcija 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; )
Kada pokrenete program, izlaz će biti:
Danas je 21. travnja 2017. Trenutno vrijeme je 11:20:42