C ++ strftime () - štandardná knižnica C ++

Funkcia strftime () v C ++ prevádza zadaný dátum a čas z daného času kalendárneho času na viacbajtový reťazec znakov s nulovým zakončením podľa formátovacieho reťazca.

Funkcia strftime () je definovaná v hlavičkovom súbore.

strftime () prototyp

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

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

Informácie o dátume a čase, na ktoré ukazuje čas, sa prevedú na viacbajtový znak s nulovým zakončením na základe hodnoty formátu a sú uložené v poli, na ktoré ukazuje str. Maximálny počet zapísaných bajtov je.

strftime () parametre

  • str: Ukazovateľ na prvý prvok znakového poľa na uloženie výsledku.
  • count: Maximálny počet bajtov na zápis.
  • formát: Ukazovateľ na viacbajtový znakový reťazec zakončený nulou, ktorý určuje formát prevodu. Reťazec formátu pozostáva zo špecifikátora prevodu (začínajúceho na% a voliteľne nasledovaného znakom E alebo O) a ďalších bežných znakov.
    Obyčajné znaky vrátane ukončovacieho prázdneho znaku sa skopírujú tak, ako to je, do výstupného reťazca. špecifikátory formátu strftime ()
    Špecifikátor konverzie Popis Použité polia
    % Napíše znak%
    n Píše znak nového riadku
    t Zapíše znak vodorovnej tabulátora
    Rok
    Y Píše 4 číslice roku, napr. 2011 tm_rok
    EY Píše 4 číslice roka v alternatívnom zastúpení miestneho nastavenia tm_rok
    r Zapisuje posledné 2 číslice roku, rozsah (00, 99) tm_rok
    Oy Zapíše posledné 2 číslice roka do alternatívneho zastúpenia miestneho nastavenia tm_rok
    Ey Píše rok ako posun od alternatívneho kalendárneho obdobia miestneho nastavenia% EC (podľa miestneho nastavenia) tm_rok
    C. Zapisuje prvé 2 číslice roku, rozsah (00,99) tm_rok
    ES Zapíše názov základného roku (obdobia) do alternatívneho znázornenia miestneho nastavenia, tm_rok
    G Píše ISO 8601 rok založený na týždňoch, tj rok, ktorý obsahuje zadaný týždeň. tm_year, tm_wday, tm_yday
    g Zapisuje posledné 2 číslice ISO 8601 roku založeného na týždni, tj roku, ktorý obsahuje zadaný týždeň (rozsah (00,99)). tm_year, tm_wday, tm_yday
    Mesiac
    b Píše skrátený názov mesiaca, napr. Jan tm_mon
    h Rovnako ako b tm_mon
    B Píše meno celého mesiaca, napr. Január tm_mon
    m Zapíše mesiac ako desatinné číslo, rozsah (01,12) tm_mon
    Om Píše mesiac pomocou alternatívneho číselného systému miestneho nastavenia tm_mon
    Týždeň
    U Píše týždeň v roku ako desatinné číslo od 00 do 53 (nedeľa je prvý deň v týždni) tm_year, tm_wday, tm_yday
    OU Píše týždeň v roku ako% U pomocou alternatívneho číselného systému tm_year, tm_wday, tm_yday
    Ž Píše týždeň v roku ako desatinné číslo od 00 do 53 (pondelok je prvý deň v týždni) tm_year, tm_wday, tm_yday
    OW Zapíše týždeň v roku ako% W pomocou alternatívneho číselného systému tm_year, tm_wday, tm_yday
    V. Píše ISO 8601 týždeň v roku (rozsah (01,53)). tm_year, tm_wday, tm_yday
    OV Zapíše týždeň v roku ako% V, pričom použije alternatívny numerický systém tm_year, tm_wday, tm_yday
    Deň v roku / mesiaci
    j Zapisuje deň v roku ako desatinné číslo, rozsah (001 366) tm_yday
    d Zapíše deň v mesiaci ako desatinné číslo, rozsah (01,31) tm_mday
    Od Zapíše deň v mesiaci, ako% d, pomocou alternatívneho číselného systému tm_mday
    e Zapisuje deň v mesiaci ako desatinné číslo, rozsah (1,31) tm_mday
    Oe Zapíše deň v mesiaci, ako% e, pomocou alternatívneho číselného systému tm_mday
    Deň v týždni
    a Píše skrátený názov dňa v týždni, napr. Pi (podľa miestneho nastavenia) tm_wday
    A Píše celé dni v týždni, napr. Piatok (závisí od miestneho nastavenia) tm_wday
    w Píše všedný deň ako desatinné číslo, rozsah (0-6) (nedeľa je 0) tm_wday
    Ou Píše všedný deň ako% w, pričom sa používa alternatívny numerický systém tm_wday
    u Píše všedný deň ako desatinné číslo, kde pondelok je 1 (formát ISO 8601), rozsah (1-7) tm_wday
    Ou Píše všedný deň ako% u, pričom sa používa alternatívny numerický systém tm_wday
    Hodina, minúta, sekunda
    H Píše hodinu ako desatinné číslo, rozsah (00,23) tm_hodina
    OH Zapíše hodinu ako% H pomocou alternatívneho číselného systému tm_hodina
    Ja Zapíše hodinu ako desatinné číslo, rozsah (01,12) tm_hodina
    OI Píše hodinu ako% I, pomocou alternatívneho číselného systému tm_hodina
    M Zapíše minútu ako desatinné číslo, rozsah (00,59) tm_min
    OM Zápis minúty ako o% M pomocou alternatívneho číselného systému tm_min
    S Sekunda sa zapíše ako desatinné číslo, rozsah (00,60) tm_sec
    OS Druhý zápis bude ako% S, pričom sa použije alternatívny numerický systém tm_sec
    Iné
    c Zapíše štandardný reťazec dátumu a času, napr. Ne 17.októbra 04:41:13 2010 (podľa miestneho nastavenia) všetko
    Ec Zapíše alternatívny reťazec dátumu a času miestneho nastavenia všetko
    X Zapíše lokalizované zastúpenie dátumu (závisí od miestneho nastavenia) všetko
    Pr Zapíše alternatívnu reprezentáciu dátumu miestneho nastavenia všetko
    X Zapisuje lokalizovanú časovú reprezentáciu (závisí od miestneho nastavenia) všetko
    EX Zapíše alternatívne časové znázornenie miestneho nastavenia všetko
    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ý 12-hodinový čas tm_hour, tm_min, tm_sec
    R Ekvivalent k „% H:% M“ tm_hour, tm_min
    T Ekvivalent k „% H:% M:% S tm_hour, tm_min, tm_sec
    P Píše lokalizované dopoludnia alebo večer (podľa miestneho nastavenia) tm_hodina
    z zapisuje ofset od UTC vo formáte ISO 8601 (napr. -0545) alebo bez znakov, ak nie sú k dispozícii informácie o časovom pásme tm_isdst
    Z Zapíše názov alebo skratku časového pásma, alebo nič, ak informácie o časovom pásme nie sú k dispozícii (závisí od miestneho nastavenia) tm_isdst
  • čas: Informácie o dátume a čase, ktoré sa majú previesť.

strftime () Vrátená hodnota

  • Pri úspechu funkcia strftime () vráti počet bajtov zapísaných do poľa znakov, na ktoré ukazuje str bez koncovky „ 0“.
  • Ak bol počet dosiahnutý skôr, ako bolo možné uložiť celý reťazec, vráti sa 0 a obsah nie je definovaný.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude výstup:

 Dnes je 21. apríla 2017 Aktuálny čas je 11:20:42

Zaujímavé články...