C ++ strftime () - C ++ Standardbibliotek

Strftime () -funktionen i C ++ konverterar det angivna datumet och tiden från en given kalendertid till en null-avslutad multibyt-teckensträng enligt en formatsträng.

Funktionen strftime () definieras i rubrikfilen.

strftime () prototyp

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

Funktionen strftime () tar fyra argument: str, count, format och tid.

Datum- och tidsinformationen som tid pekas om konverteras till ett null-avslutat multibyt-tecken baserat på formatets värde och lagras i den matris som str. Högst räknas byte.

strftime () Parametrar

  • str: Pekare till det första elementet i teckenmatrisen för att lagra resultatet.
  • count: Maximalt antal byte att skriva.
  • format: pekare till en null-terminated multibyte teckensträng som anger formatet för konvertering. Formatsträngen består av konverteringsspecifikator (börjar med% och eventuellt följt av E eller O) och andra vanliga tecken.
    De vanliga tecknen inklusive det avslutande nollkaraktären kopieras som det är till utmatningssträngen. strftime () formatspecifikationer
    Conversion Specifier Beskrivning Begagnade fält
    % Skriver karaktären%
    n Skriver newline karaktär
    t Skriver horisontell flik karaktär
    År
    Y Skriver fyra siffror per år, t.ex. 2011 tm_år
    EY Skriver fyra siffror per år i lokalens alternativa representation tm_år
    y Skriver de senaste 2 siffrorna i året, intervall (00, 99) tm_år
    Oy Skriver årets sista två siffror i lokalens alternativa representation tm_år
    Ey Skriver år som förskjutning från lokalens alternativa kalenderperiod% EC (språkberoende) tm_år
    C Skriver årets första 2 siffror, intervall (00,99) tm_år
    EG Skriver basårets (period) namn i lokalens alternativa representation, tm_år
    G Skriver ISO 8601 veckobaserat år, dvs. året som innehåller den angivna veckan. tm_year, tm_wday, tm_yday
    g Skriver de två sista siffrorna i ISO 8601 veckobaserat år, dvs. året som innehåller den angivna veckan (intervall (00,99)). tm_year, tm_wday, tm_yday
    Månad
    b Skriver förkortat månadsnamn, t.ex. jan tm_mon
    h Samma som b tm_mon
    B Skriver fullständigt månadsnamn, t.ex. januari tm_mon
    m Skriver månad som decimaltal, intervall (01,12) tm_mon
    Om Skriver månad med lokalens alternativa numeriska system tm_mon
    Vecka
    U Skriver årets vecka som ett decimaltal från 00 till 53 (söndag är veckans första dag) tm_year, tm_wday, tm_yday
    OU Skriver årets vecka som% U med hjälp av det alternativa numeriska systemet tm_year, tm_wday, tm_yday
    W Skriver årets vecka som ett decimaltal från 00 till 53 (måndag är den första dagen i veckan) tm_year, tm_wday, tm_yday
    AJ Skriver årets vecka som% W med det alternativa numeriska systemet tm_year, tm_wday, tm_yday
    V Skriver ISO 8601 vecka av året (intervall (01,53)). tm_year, tm_wday, tm_yday
    OV Skriver årets vecka, som% V, med det alternativa numeriska systemet tm_year, tm_wday, tm_yday
    Årets dag / månad
    j Skriver årets dag som ett decimaltal, intervall (001 366) tm_dag
    d Skriver månadsdagen som ett decimaltal, intervall (01,31) tm_mday
    Od Skriver dagen i månaden, som med% d, med det alternativa numeriska systemet tm_mday
    e Skriver månadsdagen som ett decimaltal, intervall (1,31) tm_mday
    Oe Skriver månadsdagen, som med% e, med det alternativa numeriska systemet tm_mday
    Veckodag
    a Skriver förkortat veckodagsnamn, t.ex. fre (språkberoende) tm_wday
    A Skriver hela veckodagens namn, t.ex. fredag ​​(språkberoende) tm_wday
    w Skriver vardag som ett decimaltal, intervall (0-6) (söndag är 0) tm_wday
    Aj Skriver vardag som med% w, med hjälp av det alternativa numeriska systemet tm_wday
    u Skriver vardag som ett decimaltal, där måndag är 1 (ISO 8601-format), intervall (1-7) tm_wday
    Ou Skriver vardag som% u, med hjälp av det alternativa numeriska systemet tm_wday
    Timme, minut, sekund
    H Skriver timme som ett decimaltal, intervall (00,23) tm_hour
    ÅH Skriver timme som% H, med hjälp av det alternativa numeriska systemet tm_hour
    Jag Skriver timme som ett decimaltal, intervall (01,12) tm_hour
    OI Skriver timme som% I, med hjälp av det alternativa numeriska systemet tm_hour
    M Skriver minut som decimaltal, intervall (00,59) tm_min
    OM Skriver minut som% M med det alternativa numeriska systemet tm_min
    S Skriver andra som ett decimaltal, intervall (00,60) tm_sec
    OS Skriver andra som% S, med hjälp av det alternativa numeriska systemet tm_sec
    Övrig
    c Skriver standarddatum och tidssträng, t.ex. sön 17 okt 04:41:13 2010 (språkberoende) Allt
    Ec Skriver språkets alternativa datum- och tidssträng Allt
    x Skriver lokaliserad datumrepresentation (språkberoende) Allt
    Ex Skriver språkets alternativa datumrepresentation Allt
    X Skriver lokaliserad tidsrepresentation (språkberoende) Allt
    EX Skriver lokalens alternativa tidsrepresentation Allt
    D Motsvarar "% m /% d /% y" tm_mon, tm_mday, tm_year
    F Motsvarar "% Y-% m-% d" tm_mon, tm_mday, tm_year
    r Skriver lokaliserad 12-timmars klocktid tm_hour, tm_min, tm_sec
    R Motsvarar "% H:% M" tm_hour, tm_min
    T Motsvarande "% H:% M:% S tm_hour, tm_min, tm_sec
    P Skriver lokaliserad am eller pm (språkberoende) tm_hour
    z skriver offset från UTC i ISO 8601-format (t.ex. -0545), eller inga tecken om tidszoninformationen inte är tillgänglig tm_isdst
    Z Skriver tidszons namn eller förkortning, eller ingenting om tidszonsinformationen inte är tillgänglig (språkberoende) tm_isdst
  • tid: Datum och tid information som ska konverteras.

strftime () Returvärde

  • Vid framgång returnerar strftime () -funktionen antalet byte skrivna i teckenuppsättningen pekad av str som inte inkluderar den avslutande ' 0'.
  • Om antalet nåddes innan hela strängen kunde lagras returneras 0 och innehållet är odefinierat.

Exempel: Hur fungerar strftime () -funktionen?

 #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ör programmet blir resultatet:

 Idag är den 21 april 2017 Nuvarande tid är 11:20:42

Intressanta artiklar...