C ++ strftime () - C ++ Standardbibliotek

Strftime () -funktionen i C ++ konverterer den givne dato og klokkeslæt fra et givet kalendertid til en null-afsluttet multibyttegnstreng i henhold til en formatstreng.

Funktionen strftime () er defineret i headerfilen.

strftime () prototype

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

Funktionen strftime () tager 4 argumenter: str, count, format og tid.

Dato- og klokkeslætsinformationen, som tiden peges på, konverteres til et null-termineret multibyttegn baseret på formatets værdi og lagres i det array, som str. Der tælles højst antal byte.

strftime () Parametre

  • str: Markør til det første element i tegnarrayet for at gemme resultatet.
  • count: Maksimalt antal byte, der skal skrives.
  • format: Markør til en null-termineret multibyte-tegnstreng, der angiver konverteringsformatet. Formatstrengen består af konverteringsspecifikator (begyndende med% og eventuelt efterfulgt af E eller O) og andre almindelige tegn.
    De almindelige tegn inklusive det afsluttende nultegn kopieres som det er til outputstrengen. strftime () format specificerer
    Konverteringsspecifikator Beskrivelse Brugte felter
    % Skriver tegnet%
    n Skriver newline-karakter
    t Skriver vandret fane
    År
    Y Skriver 4 cifre i året, f.eks. 2011 tm_år
    EY Skriver 4 cifre om året i lokalets alternative repræsentation tm_år
    y Skriver de sidste 2 cifre i året, rækkevidde (00, 99) tm_år
    Oy Skriver de sidste 2 cifre i året i lokalets alternative repræsentation tm_år
    Ey Skriver år som forskudt fra landets alternative kalenderperiode% EF (stedafhængig) tm_år
    C Skriver de første 2 cifre i året, interval (00,99) tm_år
    EF Skriver navnet på basisåret (perioden) i lokalens alternative repræsentation, tm_år
    G Skriver ISO 8601 ugebaseret år, dvs. året der indeholder den angivne uge. tm_år, tm_wday, tm_day
    g Skriver de sidste 2 cifre i ISO 8601 ugebaseret år, dvs. året der indeholder den angivne uge (interval (00,99)). tm_år, tm_wday, tm_day
    Måned
    b Skriver forkortet månedsnavn, f.eks. Jan tm_mon
    h Samme som b tm_mon
    B Skriver navnet på fuld måned, f.eks. Januar tm_mon
    m Skriver måned som et decimaltal, interval (01,12) tm_mon
    Om Skriver måned ved hjælp af landets alternative numeriske system tm_mon
    Uge
    U Skriver årets uge som et decimaltal fra 00 til 53 (søndag er den første dag i ugen) tm_år, tm_wday, tm_day
    OU Skriver årets uge som% U ved hjælp af det alternative numeriske system tm_år, tm_wday, tm_day
    W Skriver årets uge som et decimaltal fra 00 til 53 (mandag er den første dag i ugen) tm_år, tm_wday, tm_day
    OW Skriver årets uge som% W ved hjælp af det alternative numeriske system tm_år, tm_wday, tm_day
    V Skriver ISO 8601 uge af året (interval (01,53)). tm_år, tm_wday, tm_day
    OV Skriver uge af året som ved% V ved hjælp af det alternative numeriske system tm_år, tm_wday, tm_day
    Årets dag / måned
    j Skriver årets dag som et decimaltal, interval (001.366) tm_daglig
    d Skriver månedsdag som et decimaltal, interval (01,31) tm_mday
    Od Skriver dag i måneden som ved% d ved hjælp af det alternative numeriske system tm_mday
    e Skriver månedsdag som et decimaltal, interval (1,31) tm_mday
    Oe Skriver dag i måneden som ved% e ved hjælp af det alternative numeriske system tm_mday
    Dag i ugen
    -en Skriver forkortet hverdagsnavn, f.eks. Fre (stedafhængig) tm_wday
    EN Skriver fuldt ugedagsnavn, f.eks. Fredag ​​(stedafhængig) tm_wday
    w Skriver hverdag som et decimaltal, interval (0-6) (søndag er 0) tm_wday
    Ow Skriver hverdag som med% w ved hjælp af det alternative numeriske system tm_wday
    u Skriver hverdag som et decimaltal, hvor mandag er 1 (ISO 8601-format), interval (1-7) tm_wday
    Ou Skriver hverdag som ved% u ved hjælp af det alternative numeriske system tm_wday
    Time, minut, sekund
    H Skriver time som et decimaltal, interval (00,23) tm_hour
    OH Skriver time som% H ved hjælp af det alternative numeriske system tm_hour
    jeg Skriver time som et decimaltal, interval (01,12) tm_hour
    OI Skriver time som med% I ved hjælp af det alternative numeriske system tm_hour
    M Skriver minut som et decimaltal, interval (00,59) tm_min
    OM Skriver minut som% M ved hjælp af det alternative numeriske system tm_min
    S Skriver andet som et decimaltal, interval (00,60) tm_sec
    OS Skriver andet som% S ved hjælp af det alternative numeriske system tm_sec
    Andet
    c Skriver standard dato- og tidsstreng, f.eks. Søn 17 okt 04:41:13 2010 (stedafhængig) alle
    Ec Skriver stedets alternative dato- og tidsstreng alle
    x Skriver lokaliseret datorepræsentation (stedafhængig) alle
    Eks Skriver stedets alternative datorepræsentation alle
    x Skriver lokaliseret tidsrepræsentation (stedafhængig) alle
    EX Skriver lokalets alternative tidsrepræsentation alle
    D Svarer til "% m /% d /% y" tm_mon, tm_mday, tm_year
    F Svarer til "% Y-% m-% d" tm_mon, tm_mday, tm_year
    r Skriver lokaliseret 12-timers urtid tm_hour, tm_min, tm_sec
    R Svarer til "% H:% M" tm_time, tm_min
    T Ækvivalent med "% H:% M:% S tm_hour, tm_min, tm_sec
    P Skriver lokaliseret am eller pm (stedafhængig) tm_hour
    z skriver forskudt fra UTC i ISO 8601-format (f.eks. -0545) eller ingen tegn, hvis tidszoneoplysningerne ikke er tilgængelige tm_isdst
    Z Skriver tidszonens navn eller forkortelse eller intet, hvis tidszoneoplysningerne ikke er tilgængelige (stedafhængig) tm_isdst
  • tid: Datoen og klokkeslættet, der skal konverteres.

strftime () Returværdi

  • Ved succes returnerer strftime () -funktionen antallet af byte, der er skrevet i tegnarrayet, peget af str, der ikke inkluderer den afsluttende ' 0'.
  • Hvis antallet blev nået, før hele strengen kunne lagres, returneres 0, og indholdet er udefineret.

Eksempel: Hvordan fungerer 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; )

Når du kører programmet, vil output være:

 I dag er 21. april 2017 Aktuel tid er 11:20:42

Interessante artikler...