C ++ strftime () - C ++ standartinė biblioteka

Funkcija strftime () C ++ paverčia nurodytą datą ir laiką iš nurodyto kalendoriaus laiko laiko į daugiabandę simbolių eilutę, kurios pabaiga yra nulinė, pagal formato eilutę.

Strftime () funkcija apibrėžta antraštės faile.

strftime () prototipas

 size_t strftime (char * str, size_t count, const char * formatas, const tm * laikas);

Funkcijai strftime () reikia 4 argumentų: str, count, format ir time.

Datos ir laiko informacija, kurią nurodo laikas, yra paverčiama nuliniu galu nutrauktu daugiabačiu simboliu, atsižvelgiant į formato vertę, ir yra saugoma masyve, nurodytu str. Parašomi daugiausia baitai.

strftime () parametrai

  • str: žymeklis į pirmąjį simbolių masyvo elementą, kad būtų išsaugotas rezultatas.
  • skaičius: maksimalus rašomų baitų skaičius.
  • formatas: žymeklis į nulinę daugiabaitę simbolių eilutę, nurodant konversijos formatą. Formato eilutę sudaro konversijos specifikatorius (prasidedantis% ir pasirinktinai po E arba O) ir kiti įprasti simboliai.
    Paprasti simboliai, įskaitant baigiamąjį nulinį simbolį, nukopijuojami taip, kaip yra išvesties eilutėje. strftime () formato specifikatoriai
    Konversijos specifikatorius apibūdinimas Naudoti laukai
    % Rašo simbolį%
    n Rašo naujos eilės personažą
    t Rašo horizontalaus skirtuko simbolį
    Metai
    Y Rašo 4 skaitmenų metų, pvz., 2011 m tm_metas
    EY Parašo 4 metų skaitmenis alternatyviu lokalės atvaizdavimu tm_metas
    y Rašo paskutinius 2 metų skaitmenis, diapazoną (00, 99) tm_metas
    Oy Parašo paskutinius 2 metų skaitmenis alternatyviu lokalės atvaizdavimu tm_metas
    Ak Nurašo metus, atskaitytus iš vietovės alternatyvaus kalendorinio laikotarpio,% EC tm_metas
    C Rašo pirmuosius 2 metų skaitmenis, diapazonas (00,99) tm_metas
    EB Parašo bazinių metų (laikotarpio) pavadinimą alternatyvioje lokalės reprezentacijoje, tm_metas
    G Rašo ISO 8601 savaitės metus, ty metus, kuriuose yra nurodyta savaitė. tm_year, tm_wday, tm_yday
    g Rašo paskutinius 2 ISO 8601 skaitmenų skaičius savaitėmis, ty metus, kuriuose yra nurodyta savaitė (diapazonas (00,99)). tm_year, tm_wday, tm_yday
    Mėnuo
    b Rašo sutrumpintą mėnesio pavadinimą, pvz., Jan tm_mon
    h Tas pats kaip b tm_mon
    B Rašo viso mėnesio pavadinimą, pvz., Sausį tm_mon
    m Rašo mėnesį kaip dešimtainį skaičių, intervalą (01,12) tm_mon
    Om Rašo mėnesį naudodamas alternatyvią lokalės skaitinę sistemą tm_mon
    Savaitė
    U Metų savaitę rašo dešimtainiu skaičiumi nuo 00 iki 53 (sekmadienis yra pirmoji savaitės diena) tm_year, tm_wday, tm_yday
    OU Metų savaitę rašo% U, naudodama alternatyvią skaitinę sistemą tm_year, tm_wday, tm_yday
    W Metų savaitę rašo dešimtainiu skaičiumi nuo 00 iki 53 (pirmadienis yra pirmoji savaitės diena) tm_year, tm_wday, tm_yday
    OW Metų savaitę rašo% W, naudodama alternatyvią skaitinę sistemą tm_year, tm_wday, tm_yday
    V Rašo ISO 8601 metų savaitę (diapazonas (01,53)). tm_year, tm_wday, tm_yday
    OV Rašo metų savaitę, kaip% V, naudodama alternatyvią skaitinę sistemą tm_year, tm_wday, tm_yday
    Metų / mėnesio diena
    j Metų dieną rašo dešimtainiu skaičiumi, intervalą (001 366) tm_yday
    d Parašo mėnesio dieną kaip dešimtainį skaičių, intervalą (01,31) tm_mday
    Od Rašo mėnesio dieną kaip% d, naudodama alternatyvią skaitinę sistemą tm_mday
    e Parašo mėnesio dieną kaip dešimtainį skaičių, intervalą (1,31) tm_mday
    Oe Rašo mėnesio dieną kaip% e, naudodama alternatyvią skaitinę sistemą tm_mday
    Savaitės diena
    a Rašo sutrumpintą savaitės dienos pavadinimą, pvz., Penktadienis (priklauso nuo lokalės) tm_wday
    A Rašo visą darbo dienos pavadinimą, pvz., Penktadienis (priklauso nuo lokalės) tm_wday
    w Rašo savaitės dieną kaip kablelį, intervalą (0–6) (sekmadienis yra 0) tm_wday
    Ow Savaitės dieną rašo% w, naudodama alternatyvią skaitinę sistemą tm_wday
    u Savaitė rašoma dešimtainiu skaičiumi, kur pirmadienis yra 1 (ISO 8601 formatas), diapazonas (1–7) tm_wday
    Ou Savaitės dieną rašo% u, naudodama alternatyvią skaitinę sistemą tm_wday
    Valanda, minutė, sekundė
    H Rašo valandą kaip dešimtainį skaičių, intervalą (00,23) tm_valanda
    OI Rašo valandą kaip% H, naudodama alternatyvią skaitinę sistemą tm_valanda
    Rašo valandą kaip dešimtainį skaičių, diapazoną (01,12) tm_valanda
    OI Rašo valandą kaip% I, naudodama alternatyvią skaitinę sistemą tm_valanda
    M Rašo minutę kaip dešimtainį skaičių, diapazoną (00,59) tm_min
    OM Rašo minutę kaip% M, naudodama alternatyvią skaitinę sistemą tm_min
    S Rašo antrą dešimtainį skaičių, intervalą (00,60) tm_sek
    OS Rašo antrą kaip% S, naudodamas alternatyvią skaitinę sistemą tm_sek
    Kita
    c Rašo standartinę datos ir laiko eilutę, pvz., 2010 m. Spalio 17 d., 04:41:13, (priklauso nuo lokalės) visi
    Ec Parašo lokalės alternatyvią datos ir laiko eilutę visi
    x Rašo lokalizuotą datos atvaizdavimą (priklauso nuo lokalės) visi
    Pvz Parašo lokalės alternatyvų datos vaizdą visi
    X Rašo lokalizuotą laiko vaizdavimą (priklauso nuo lokalės) visi
    PAVYZDYS Rašo lokalės alternatyvų laiko vaizdavimą visi
    D Atitinka „% m /% d /% y“ tm_mon, tm_mday, tm_year
    F Atitinka „% Y-% m-% d“ tm_mon, tm_mday, tm_year
    r Rašo lokalizuotą 12 valandų laikrodžio laiką tm_valanda, tm_min, tm_sek
    R Atitinka „% H:% M“ tm_valanda, tm_min
    T Atitinka „% H:% M:% S“ tm_valanda, tm_min, tm_sek
    P Rašo lokalizuotą rytą arba pm (priklauso nuo lokalės) tm_valanda
    z rašo poslinkį nuo UTC ISO 8601 formatu (pvz., -0545), arba be simbolių, jei nėra laiko juostos informacijos tm_isdst
    Z Rašo laiko juostos pavadinimą ar santrumpą, arba nieko, jei nėra laiko juostos informacijos (priklauso nuo lokalės) tm_isdst
  • laikas: konvertuojama data ir laikas.

strftime () Grąžinimo vertė

  • Pasisekus, funkcija strftime () grąžina baitų, įrašytų į simbolių masyvą, skaičių, nurodytą str, neįtraukiant pabaigos „ 0“.
  • Jei skaičius buvo pasiektas prieš išsaugant visą eilutę, grąžinama 0 ir turinys nėra apibrėžtas.

Pavyzdys: Kaip veikia strftime () funkcija?

 #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; )

Kai paleisite programą, išvestis bus:

 Šiandien yra 2017 m. Balandžio 21 d. Dabartinis laikas yra 11:20:42

Įdomios straipsniai...