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

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

Zanimljivi članci...