C ++ strftime () - C ++ Standardbibliotek

Strftime () -funksjonen i C ++ konverterer gitt dato og klokkeslett fra en gitt kalendertid til en null-avsluttet multibyte tegnstreng i henhold til en formatstreng.

Strftime () -funksjonen er definert i topptekstfilen.

strftime () prototype

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

Strftime () -funksjonen tar fire argumenter: str, count, format og tid.

Dato- og klokkeslettinformasjonen som tiden peker på, konverteres til et null-avsluttet multibyttegn basert på formatets verdi og lagres i matrisen som str. Det skrives maksimalt antall byte.

strftime () Parametere

  • str: Peker til det første elementet i tegnmatrisen for å lagre resultatet.
  • count: Maksimalt antall byte å skrive.
  • format: peker til en null-avsluttet multibyte tegnstreng som spesifiserer formatet for konvertering. Formatstrengen består av konverteringsspesifikator (begynner med% og eventuelt etterfulgt av E eller O) og andre vanlige tegn.
    De vanlige tegnene, inkludert det avsluttende nulltegnet, kopieres som det er til utgangsstrengen. strftime () format spesifiserer
    Konverteringsspesifikator Beskrivelse Brukte felt
    % Skriver tegnet%
    n Skriver newline-karakter
    t Skriver vannrett fane
    År
    Y Skriver 4 sifre i året, f.eks. 2011 tm_år
    EY Skriver 4 sifre av året i lokalets alternative representasjon tm_år
    y Skriver de siste to sifrene i året, rekkevidde (00, 99) tm_år
    Oy Skriver de to siste sifrene i året i lokalets alternative representasjon tm_år
    Ey Skriver år som forskjøvet fra lokalens alternative kalenderperiode% EC (stedavhengig) tm_år
    C Skriver de to første sifrene i året, rekkevidde (00,99) tm_år
    EC Skriver navnet på basisåret (perioden) i stedets alternative representasjon, tm_år
    G Skriver ISO 8601 ukebasert år, dvs. året som inneholder den angitte uken. tm_år, tm_wday, tm_day
    g Skriver de siste 2 sifrene i ISO 8601 ukebasert år, dvs. året som inneholder den angitte uken (område (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å hele måneden, f.eks. Januar tm_mon
    m Skriver måned som et desimaltall, område (01,12) tm_mon
    Om Skriver måned ved hjelp av stedets alternative numeriske system tm_mon
    Uke
    U Skriver årets uke som et desimaltall fra 00 til 53 (søndag er den første dagen i uken) tm_år, tm_wday, tm_day
    OU Skriver uken i året som av% U ved hjelp av det alternative numeriske systemet tm_år, tm_wday, tm_day
    W Skriver årets uke som et desimaltall fra 00 til 53 (mandag er den første dagen i uken) tm_år, tm_wday, tm_day
    OW Skriver uken i året som% W ved hjelp av det alternative numeriske systemet tm_år, tm_wday, tm_day
    V Skriver ISO 8601 uke av året (område (01,53)). tm_år, tm_wday, tm_day
    OV Skriver uken i året, som med% V, ved hjelp av det alternative numeriske systemet tm_år, tm_wday, tm_day
    Årets dag / måned
    j Skriver årets dag som et desimaltall, rekkevidde (001 366) tm_dag
    d Skriver månedsdagen som et desimaltall, område (01,31) tm_mday
    Od Skriver dagen i måneden, som med% d, ved hjelp av det alternative numeriske systemet tm_mday
    e Skriver månedsdagen som et desimaltall, område (1,31) tm_mday
    Oe Skriver dagen i måneden, som med% e, ved hjelp av det alternative numeriske systemet tm_mday
    Ukedag
    en Skriver forkortet ukedagsnavn, f.eks. Fre (stedavhengig) tm_wday
    EN Skriver full ukedag, f.eks. Fredag ​​(stedavhengig) tm_wday
    w Skriver ukedag som et desimaltall, område (0-6) (søndag er 0) tm_wday
    Ow Skriver ukedag som med% w, ved hjelp av det alternative numeriske systemet tm_wday
    u Skriver ukedag som et desimaltall, der mandag er 1 (ISO 8601-format), rekkevidde (1-7) tm_wday
    Ou Skriver ukedag som% u, ved hjelp av det alternative numeriske systemet tm_wday
    Time, minutt, sekund
    H Skriver time som et desimaltall, rekkevidde (00,23) tm_time
    ÅH Skriver time som% H ved hjelp av det alternative numeriske systemet tm_time
    Jeg Skriver time som et desimaltall, rekkevidde (01,12) tm_time
    OI Skriver time som% I, ved hjelp av det alternative numeriske systemet tm_time
    M Skriver minutt som desimaltall, rekkevidde (00,59) tm_min
    OM Skriver minutt som med% M, ved hjelp av det alternative numeriske systemet tm_min
    S Skriver andre som desimaltall, rekkevidde (00,60) tm_sec
    OS Skriver andre som% S, ved hjelp av det alternative numeriske systemet tm_sec
    Annen
    c Skriver standard dato og klokkeslett, f.eks. Søn 17 okt 04:41:13 2010 (stedavhengig) alle
    Ec Skriver stedets alternative dato og klokkeslettstreng alle
    x Skriver lokalisert datarepresentasjon (stedavhengig) alle
    Eks Skriver stedets alternative datorepresentasjon alle
    X Skriver lokalisert tidsrepresentasjon (stedavhengig) alle
    EX Skriver stedets alternative tidsrepresentasjon alle
    D Tilsvarer "% m /% d /% y" tm_mon, tm_mday, tm_year
    F Tilsvarer "% Y-% m-% d" tm_mon, tm_mday, tm_year
    r Skriver lokalisert 12-timers tid tm_hour, tm_min, tm_sec
    R Tilsvarer "% H:% M" tm_time, tm_min
    T Tilsvarer "% H:% M:% S tm_hour, tm_min, tm_sec
    P Skriver lokalisert am eller pm (stedavhengig) tm_time
    z skriver forskyvning fra UTC i ISO 8601-format (f.eks. -0545), eller ingen tegn hvis tidssoneinformasjonen ikke er tilgjengelig tm_isdst
    Z Skriver tidssone navn eller forkortelse, eller ingenting hvis tidssoneinformasjonen ikke er tilgjengelig (stedavhengig) tm_isdst
  • tid: Datoen og klokkeslettet som skal konverteres.

strftime () Returverdi

  • Når det lykkes, returnerer strftime () -funksjonen antall byte som er skrevet i tegnmatrisen som er pekt på av str, og som ikke inkluderer den avsluttende ' 0'.
  • Hvis antall ble nådd før hele strengen kunne lagres, returneres 0 og innholdet er udefinert.

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 kjører programmet, vil utdataene være:

 I dag er det 21. april 2017 Nåværende tid er 11:20:42

Interessante artikler...