C ++ strftime () - standardní knihovna C ++

Funkce strftime () v C ++ převede zadané datum a čas z daného času v kalendáři na vícebajtový řetězec znaků zakončený hodnotou null podle formátovacího řetězce.

Funkce strftime () je definována v hlavičkovém souboru.

strftime () prototyp

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

Funkce strftime () má 4 argumenty: str, count, format a time.

Informace o datu a čase, na které ukazuje čas, jsou převedeny na vícebajtový znak s nulovým zakončením na základě hodnoty formátu a jsou uloženy v poli, na které ukazuje str. Je zapsáno nanejvýš počet bajtů.

strftime () parametry

  • str: Ukazatel na první prvek pole znaků pro uložení výsledku.
  • count: Maximální počet bajtů pro zápis.
  • format: Ukazatel na vícebajtový řetězec znaků s nulovým zakončením určující formát převodu. Řetězec formátu se skládá ze specifikátoru převodu (začínajícího% a volitelně následovaného E nebo O) a dalších běžných znaků.
    Obyčejné znaky včetně zakončovacího nulového znaku jsou zkopírovány tak, jak jsou, do výstupního řetězce. specifikátory formátu strftime ()
    Specifikátor převodu Popis Použitá pole
    % Zapíše znak%
    n Zapíše znak nového řádku
    t Zapíše znak vodorovné karty
    Rok
    Y Zapíše 4 číslice roku, např. 2011 tm_rok
    EY Zapíše 4 číslice roku v alternativním vyjádření národního prostředí tm_rok
    y Zapíše poslední 2 číslice roku, rozsah (00, 99) tm_rok
    Dobře Zapíše poslední 2 číslice roku do alternativního vyjádření národního prostředí tm_rok
    Ey Zapíše rok jako posun od alternativního kalendářního období národního prostředí% EC (podle národního prostředí) tm_rok
    C Zapíše první 2 číslice roku, rozsah (00,99) tm_rok
    ES Zapíše název základního roku (období) do alternativního znázornění národního prostředí, tm_rok
    G Píše ISO 8601 týdenní rok, tj. Rok, který obsahuje zadaný týden. tm_year, tm_wday, tm_yday
    G Zapíše poslední 2 číslice roku založeného na ISO 8601 za týden, tj. Rok, který obsahuje zadaný týden (rozsah (00,99)). tm_year, tm_wday, tm_yday
    Měsíc
    b Píše zkrácený název měsíce, např. Jan tm_mon
    h Stejné jako b tm_mon
    B Píše celé jméno měsíce, např. Leden tm_mon
    m Zapíše měsíc jako desetinné číslo, rozsah (01,12) tm_mon
    Om Zapisuje měsíc pomocí alternativního numerického systému národního prostředí tm_mon
    Týden
    U Píše týden v roce jako desetinné číslo od 00 do 53 (neděle je první den v týdnu) tm_year, tm_wday, tm_yday
    OU Zapíše týden v roce jako% U pomocí alternativního numerického systému tm_year, tm_wday, tm_yday
    Ž Píše týden v roce jako desetinné číslo od 00 do 53 (pondělí je první den v týdnu) tm_year, tm_wday, tm_yday
    OW Zapíše týden v roce jako% W pomocí alternativního numerického systému tm_year, tm_wday, tm_yday
    PROTI Píše ISO 8601 týden v roce (rozsah (01,53)). tm_year, tm_wday, tm_yday
    OV Zapíše týden v roce jako% V pomocí alternativního numerického systému tm_year, tm_wday, tm_yday
    Den v roce / měsíc
    j Zapíše den v roce jako desetinné číslo, rozsah (001 366) tm_yday
    d Zapíše den v měsíci jako desetinné číslo, rozsah (01,31) tm_mday
    Od Zapíše den v měsíci jako% d pomocí alternativního číselného systému tm_mday
    E Zapíše den v měsíci jako desetinné číslo, rozsah (1,31) tm_mday
    Oe Zapíše den v měsíci jako% e pomocí alternativního numerického systému tm_mday
    Den v týdnu
    A Zapíše zkrácený název dne v týdnu, např. Pá (podle národního prostředí) tm_wday
    A Píše celý den v týdnu, např. Pátek (podle národního prostředí) tm_wday
    w Zapíše den v týdnu jako desetinné číslo, rozsah (0-6) (neděle je 0) tm_wday
    Ou Zapíše den v týdnu jako% w, pomocí alternativního numerického systému tm_wday
    u Zapíše den v týdnu jako desetinné číslo, kde pondělí je 1 (formát ISO 8601), rozsah (1-7) tm_wday
    Ou Zapíše den v týdnu jako% u pomocí alternativní numerické soustavy tm_wday
    Hodina, minuta, sekunda
    H Zapíše hodinu jako desetinné číslo, rozsah (00,23) tm_hodina
    ACH Zapíše hodinu jako% H pomocí alternativního numerického systému tm_hodina
    Zapíše hodinu jako desetinné číslo, rozsah (01,12) tm_hodina
    OI Zapíše hodinu jako% I pomocí alternativního numerického systému tm_hodina
    M Zapíše minutu jako desetinné číslo, rozsah (00,59) tm_min
    OM Zapíše minutu jako% M, pomocí alternativního číselného systému tm_min
    S Zapíše druhé jako desetinné číslo, rozsah (00,60) tm_sec
    OS Zapisuje druhý jako% S pomocí alternativního numerického systému tm_sec
    jiný
    C Zapíše standardní řetězec data a času, např. Ne 17. října 04:41:13 2010 (podle národního prostředí) Všechno
    Ec Zapíše alternativní řetězec data a času národního prostředí Všechno
    X Zapíše lokalizovanou reprezentaci data (podle národního prostředí) Všechno
    Zapíše národní reprezentaci data podle data Všechno
    X Zapíše lokalizovanou časovou reprezentaci (podle národního prostředí) Všechno
    EX Zapíše alternativní časovou reprezentaci národního prostředí Všechno
    D Ekvivalent k „% m /% d /% y“ tm_mon, tm_mday, tm_year
    F Ekvivalent k „% Y-% m-% d“ tm_mon, tm_mday, tm_year
    r Píše lokalizovaný 12hodinový čas tm_hour, tm_min, tm_sec
    R Ekvivalent k „% H:% M“ tm_hodina, tm_min
    T Ekvivalent k „% H:% M:% S tm_hour, tm_min, tm_sec
    P Zapisuje lokalizované dopoledne nebo odpoledne (podle národního prostředí) tm_hodina
    z zapisuje offset od UTC ve formátu ISO 8601 (např. -0545), nebo žádné znaky, pokud nejsou k dispozici informace o časovém pásmu tm_isdst
    Z Zapíše název nebo zkratku časového pásma, nebo nic, pokud informace o časovém pásmu nejsou k dispozici (podle národního prostředí) tm_isdst
  • čas: informace o datu a čase, které se mají převést.

strftime () Návratová hodnota

  • Při úspěchu vrátí funkce strftime () počet bytů zapsaných do pole znaků, na které ukazuje str bez koncovky ' 0'.
  • Pokud bylo dosaženo počtu před uložením celého řetězce, je vrácena 0 a obsah není definován.

Příklad: Jak funguje funkce 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; )

Když spustíte program, výstup bude:

 Dnes je 21. dubna 2017 Aktuální čas je 11:20:42

Zajímavé články...