C ++ strftime () - Standardna knjižnica C ++

Funkcija strftime () v jeziku C ++ pretvori dani datum in uro iz določenega koledarskega časa v ničelni večbajtni niz znakov v skladu z nizom oblike.

Funkcija strftime () je definirana v datoteki glave.

prototip strftime ()

 size_t strftime (char * str, size_t count, const char * format, const tm * time);

Funkcija strftime () ima 4 argumente: str, count, format in čas.

Podatki o datumu in času, na katere kaže čas, se pretvorijo v ničelni večbajtni znak na podlagi vrednosti formata in se shranijo v matriko, na katero kaže str. Zapisanih je največ bajtov štetja.

parametri strftime ()

  • str: Kazalec na prvi element polja znakov za shranjevanje rezultata.
  • count: Največje število bajtov za zapis.
  • format: kazalec na ničelni večbajtni niz znakov, ki določa obliko pretvorbe. Niz oblike je sestavljen iz specifikatorja pretvorbe (ki se začne z% in po želji sledi E ali O) in drugih običajnih znakov.
    Navadni znaki, vključno s končnim ničelnim znakom, se kopirajo tako kot v izhodni niz. specifikatorji oblike strftime ()
    Specifikacija pretvorbe Opis Uporabljena polja
    % Zapiše znak%
    n Zapiše znak nove vrstice
    t Zapiše vodoravni znak zavihka
    Leto
    Y. Zapiše 4 številke leta, npr. 2011 tm_year
    EY Zapiše 4 številke leta v alternativni predstavitvi jezika tm_year
    y Zapiše zadnji dve števki leta, obseg (00, 99) tm_year
    Oj Zapiše zadnji dve števki leta v alternativni predstavitvi področne nastavitve tm_year
    Ej Zapiše leto kot odmik od alternativnega koledarskega obdobja% EC (odvisno od jezika) tm_year
    C Zapiše prve dve števki leta, obseg (00,99) tm_year
    ES Zapiše ime izhodiščnega leta (obdobja) v alternativno predstavitev področne nastavitve, tm_year
    G Zapiše tedensko leto ISO 8601, tj. Leto, ki vsebuje navedeni teden. tm_year, tm_wday, tm_yday
    g Zapiše zadnji dve števki leta, ki temelji na tednu ISO 8601, tj. Leta, ki vsebuje določen teden (obseg (00,99)). tm_year, tm_wday, tm_yday
    Mesec
    b Piše okrajšano ime meseca, npr. Jan tm_mon
    h Enako kot b tm_mon
    B Piše polno mesečno ime, npr. Januar tm_mon
    m Zapiše mesec kot decimalno število, obseg (01,12) tm_mon
    Om Zapiše mesec z uporabo nadomestnega številskega sistema jezika tm_mon
    Teden
    U Zapiše teden v letu kot decimalno število od 00 do 53 (nedelja je prvi dan v tednu) tm_year, tm_wday, tm_yday
    OU Teden v letu zapiše kot% U z uporabo alternativnega številskega sistema tm_year, tm_wday, tm_yday
    W Zapiše teden v letu kot decimalno število od 00 do 53 (ponedeljek je prvi dan v tednu) tm_year, tm_wday, tm_yday
    OW Teden v letu zapiše kot% W z uporabo alternativnega številskega sistema tm_year, tm_wday, tm_yday
    V Piše teden v letu ISO 8601 (razpon (01,53)). tm_year, tm_wday, tm_yday
    OV Zapiše teden v letu kot% V z uporabo alternativnega številskega sistema tm_year, tm_wday, tm_yday
    Dan v letu / mesecu
    j Zapiše dan v letu kot decimalno število, obseg (001.366) tm_yday
    d Zapiše dan v mesecu kot decimalno število, obseg (01,31) tm_mday
    Od Zapiše dan v mesecu kot% d z uporabo alternativnega številskega sistema tm_mday
    e Zapiše dan v mesecu kot decimalno število, obseg (1,31) tm_mday
    Oe Zapiše dan v mesecu kot% e z uporabo alternativnega številskega sistema tm_mday
    Dan v tednu
    a Piše okrajšano ime delavnika, npr. Pet (odvisno od kraja) tm_wday
    A Zapiše polno ime delavnika, npr. Petek (odvisno od jezika) tm_wday
    w Zapiše delovni dan kot decimalno število, obseg (0-6) (nedelja je 0) tm_wday
    Oj Zapiše delovni dan kot% w z uporabo alternativnega številskega sistema tm_wday
    u Zapiše delovni dan kot decimalno število, kjer je ponedeljek 1 (format ISO 8601), obseg (1-7) tm_wday
    Ou Zapiše delovni dan kot% u z uporabo alternativnega številskega sistema tm_wday
    Ura, minuta, sekunda
    H Zapiše uro kot decimalno število, obseg (00,23) tm_hour
    OH Zapiše uro kot% H z uporabo alternativnega številskega sistema tm_hour
    jaz Zapiše uro kot decimalno število, obseg (01,12) tm_hour
    OI Zapiše uro kot% I z uporabo alternativnega številskega sistema tm_hour
    M Zapiše minuto kot decimalno število, obseg (00,59) tm_min
    OM Zapiše minuto kot% M z uporabo alternativnega številskega sistema tm_min
    S Zapiše drugo kot decimalno število, obseg (00,60) tm_sec
    OS Zapiše drugo kot% S z uporabo alternativnega številskega sistema tm_sec
    Drugo
    c Zapiše standardni datumski in časovni niz, npr. Ned. 17. okt. vse
    Ec Zapiše nadomestni niz datuma in časa vse
    x Zapiše lokalizirano predstavitev datuma (odvisno od področne nastavitve) vse
    Napr Zapiše področno predstavitev datuma vse
    X Zapiše lokalizirano predstavitev časa (odvisno od krajevne nastavitve) vse
    Npr Napiše alternativno časovno predstavitev področne nastavitve vse
    D Enakovredno "% m /% d /% y" tm_mon, tm_mday, tm_year
    F Enakovredno "% Y-% m-% d" tm_mon, tm_mday, tm_year
    r Zapiše lokaliziran 12-urni čas ure tm_hour, tm_min, tm_sec
    R Enakovredno "% H:% M" tm_hour, tm_min
    T Enakovredno "% H:% M:% S tm_hour, tm_min, tm_sec
    P Piše lokalizirano zjutraj ali zvečer (odvisno od področne nastavitve) tm_hour
    z zapisuje odmik od UTC v formatu ISO 8601 (npr. -0545) ali brez znakov, če podatki o časovnem pasu niso na voljo tm_isdst
    Z Zapiše ime ali kratico časovnega pasu ali nič, če podatki o časovnem pasu niso na voljo (odvisno od jezika) tm_isdst
  • čas: datum in čas za pretvorbo.

strftime () Vrnjena vrednost

  • Po uspehu funkcija strftime () vrne število bajtov, zapisanih v matriko znakov, na katero kaže str, ne da bi se končala ' 0'.
  • Če je bilo število doseženo, preden je bilo mogoče shraniti celoten niz, se vrne 0 in vsebina ni definirana.

Primer: Kako deluje 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; )

Ko zaženete program, bo rezultat:

 Danes je 21. april 2017 Trenutni čas je 11:20:42

Zanimive Članki...