Strftime () -funktionen i C ++ konverterer den givne dato og klokkeslæt fra et givet kalendertid til en null-afsluttet multibyttegnstreng i henhold til en formatstreng.
Funktionen strftime () er defineret i headerfilen.
strftime () prototype
size_t strftime (char * str, size_t count, const char * format, const tm * time);
Funktionen strftime () tager 4 argumenter: str, count, format og tid.
Dato- og klokkeslætsinformationen, som tiden peges på, konverteres til et null-termineret multibyttegn baseret på formatets værdi og lagres i det array, som str. Der tælles højst antal byte.
strftime () Parametre
- str: Markør til det første element i tegnarrayet for at gemme resultatet.
- count: Maksimalt antal byte, der skal skrives.
- format: Markør til en null-termineret multibyte-tegnstreng, der angiver konverteringsformatet. Formatstrengen består af konverteringsspecifikator (begyndende med% og eventuelt efterfulgt af E eller O) og andre almindelige tegn.
De almindelige tegn inklusive det afsluttende nultegn kopieres som det er til outputstrengen. strftime () format specificererKonverteringsspecifikator Beskrivelse Brugte felter % Skriver tegnet% n Skriver newline-karakter t Skriver vandret fane År Y Skriver 4 cifre i året, f.eks. 2011 tm_år EY Skriver 4 cifre om året i lokalets alternative repræsentation tm_år y Skriver de sidste 2 cifre i året, rækkevidde (00, 99) tm_år Oy Skriver de sidste 2 cifre i året i lokalets alternative repræsentation tm_år Ey Skriver år som forskudt fra landets alternative kalenderperiode% EF (stedafhængig) tm_år C Skriver de første 2 cifre i året, interval (00,99) tm_år EF Skriver navnet på basisåret (perioden) i lokalens alternative repræsentation, tm_år G Skriver ISO 8601 ugebaseret år, dvs. året der indeholder den angivne uge. tm_år, tm_wday, tm_day g Skriver de sidste 2 cifre i ISO 8601 ugebaseret år, dvs. året der indeholder den angivne uge (interval (00,99)). tm_år, tm_wday, tm_day Måned b Skriver forkortet månedsnavn, f.eks. Jan tm_mon h Samme som b tm_mon B Skriver navnet på fuld måned, f.eks. Januar tm_mon m Skriver måned som et decimaltal, interval (01,12) tm_mon Om Skriver måned ved hjælp af landets alternative numeriske system tm_mon Uge U Skriver årets uge som et decimaltal fra 00 til 53 (søndag er den første dag i ugen) tm_år, tm_wday, tm_day OU Skriver årets uge som% U ved hjælp af det alternative numeriske system tm_år, tm_wday, tm_day W Skriver årets uge som et decimaltal fra 00 til 53 (mandag er den første dag i ugen) tm_år, tm_wday, tm_day OW Skriver årets uge som% W ved hjælp af det alternative numeriske system tm_år, tm_wday, tm_day V Skriver ISO 8601 uge af året (interval (01,53)). tm_år, tm_wday, tm_day OV Skriver uge af året som ved% V ved hjælp af det alternative numeriske system tm_år, tm_wday, tm_day Årets dag / måned j Skriver årets dag som et decimaltal, interval (001.366) tm_daglig d Skriver månedsdag som et decimaltal, interval (01,31) tm_mday Od Skriver dag i måneden som ved% d ved hjælp af det alternative numeriske system tm_mday e Skriver månedsdag som et decimaltal, interval (1,31) tm_mday Oe Skriver dag i måneden som ved% e ved hjælp af det alternative numeriske system tm_mday Dag i ugen -en Skriver forkortet hverdagsnavn, f.eks. Fre (stedafhængig) tm_wday EN Skriver fuldt ugedagsnavn, f.eks. Fredag (stedafhængig) tm_wday w Skriver hverdag som et decimaltal, interval (0-6) (søndag er 0) tm_wday Ow Skriver hverdag som med% w ved hjælp af det alternative numeriske system tm_wday u Skriver hverdag som et decimaltal, hvor mandag er 1 (ISO 8601-format), interval (1-7) tm_wday Ou Skriver hverdag som ved% u ved hjælp af det alternative numeriske system tm_wday Time, minut, sekund H Skriver time som et decimaltal, interval (00,23) tm_hour OH Skriver time som% H ved hjælp af det alternative numeriske system tm_hour jeg Skriver time som et decimaltal, interval (01,12) tm_hour OI Skriver time som med% I ved hjælp af det alternative numeriske system tm_hour M Skriver minut som et decimaltal, interval (00,59) tm_min OM Skriver minut som% M ved hjælp af det alternative numeriske system tm_min S Skriver andet som et decimaltal, interval (00,60) tm_sec OS Skriver andet som% S ved hjælp af det alternative numeriske system tm_sec Andet c Skriver standard dato- og tidsstreng, f.eks. Søn 17 okt 04:41:13 2010 (stedafhængig) alle Ec Skriver stedets alternative dato- og tidsstreng alle x Skriver lokaliseret datorepræsentation (stedafhængig) alle Eks Skriver stedets alternative datorepræsentation alle x Skriver lokaliseret tidsrepræsentation (stedafhængig) alle EX Skriver lokalets alternative tidsrepræsentation alle D Svarer til "% m /% d /% y" tm_mon, tm_mday, tm_year F Svarer til "% Y-% m-% d" tm_mon, tm_mday, tm_year r Skriver lokaliseret 12-timers urtid tm_hour, tm_min, tm_sec R Svarer til "% H:% M" tm_time, tm_min T Ækvivalent med "% H:% M:% S tm_hour, tm_min, tm_sec P Skriver lokaliseret am eller pm (stedafhængig) tm_hour z skriver forskudt fra UTC i ISO 8601-format (f.eks. -0545) eller ingen tegn, hvis tidszoneoplysningerne ikke er tilgængelige tm_isdst Z Skriver tidszonens navn eller forkortelse eller intet, hvis tidszoneoplysningerne ikke er tilgængelige (stedafhængig) tm_isdst - tid: Datoen og klokkeslættet, der skal konverteres.
strftime () Returværdi
- Ved succes returnerer strftime () -funktionen antallet af byte, der er skrevet i tegnarrayet, peget af str, der ikke inkluderer den afsluttende ' 0'.
- Hvis antallet blev nået, før hele strengen kunne lagres, returneres 0, og indholdet er udefineret.
Eksempel: Hvordan fungerer 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; )
Når du kører programmet, vil output være:
I dag er 21. april 2017 Aktuel tid er 11:20:42