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 specifikatoriaiKonversijos 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 Aš 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