Strftime () -funksjonen i C ++ konverterer gitt dato og klokkeslett fra en gitt kalendertid til en null-avsluttet multibyte tegnstreng i henhold til en formatstreng.
Strftime () -funksjonen er definert i topptekstfilen.
strftime () prototype
size_t strftime (char * str, size_t count, const char * format, const tm * time);
Strftime () -funksjonen tar fire argumenter: str, count, format og tid.
Dato- og klokkeslettinformasjonen som tiden peker på, konverteres til et null-avsluttet multibyttegn basert på formatets verdi og lagres i matrisen som str. Det skrives maksimalt antall byte.
strftime () Parametere
- str: Peker til det første elementet i tegnmatrisen for å lagre resultatet.
- count: Maksimalt antall byte å skrive.
- format: peker til en null-avsluttet multibyte tegnstreng som spesifiserer formatet for konvertering. Formatstrengen består av konverteringsspesifikator (begynner med% og eventuelt etterfulgt av E eller O) og andre vanlige tegn.
De vanlige tegnene, inkludert det avsluttende nulltegnet, kopieres som det er til utgangsstrengen. strftime () format spesifisererKonverteringsspesifikator Beskrivelse Brukte felt % Skriver tegnet% n Skriver newline-karakter t Skriver vannrett fane År Y Skriver 4 sifre i året, f.eks. 2011 tm_år EY Skriver 4 sifre av året i lokalets alternative representasjon tm_år y Skriver de siste to sifrene i året, rekkevidde (00, 99) tm_år Oy Skriver de to siste sifrene i året i lokalets alternative representasjon tm_år Ey Skriver år som forskjøvet fra lokalens alternative kalenderperiode% EC (stedavhengig) tm_år C Skriver de to første sifrene i året, rekkevidde (00,99) tm_år EC Skriver navnet på basisåret (perioden) i stedets alternative representasjon, tm_år G Skriver ISO 8601 ukebasert år, dvs. året som inneholder den angitte uken. tm_år, tm_wday, tm_day g Skriver de siste 2 sifrene i ISO 8601 ukebasert år, dvs. året som inneholder den angitte uken (område (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å hele måneden, f.eks. Januar tm_mon m Skriver måned som et desimaltall, område (01,12) tm_mon Om Skriver måned ved hjelp av stedets alternative numeriske system tm_mon Uke U Skriver årets uke som et desimaltall fra 00 til 53 (søndag er den første dagen i uken) tm_år, tm_wday, tm_day OU Skriver uken i året som av% U ved hjelp av det alternative numeriske systemet tm_år, tm_wday, tm_day W Skriver årets uke som et desimaltall fra 00 til 53 (mandag er den første dagen i uken) tm_år, tm_wday, tm_day OW Skriver uken i året som% W ved hjelp av det alternative numeriske systemet tm_år, tm_wday, tm_day V Skriver ISO 8601 uke av året (område (01,53)). tm_år, tm_wday, tm_day OV Skriver uken i året, som med% V, ved hjelp av det alternative numeriske systemet tm_år, tm_wday, tm_day Årets dag / måned j Skriver årets dag som et desimaltall, rekkevidde (001 366) tm_dag d Skriver månedsdagen som et desimaltall, område (01,31) tm_mday Od Skriver dagen i måneden, som med% d, ved hjelp av det alternative numeriske systemet tm_mday e Skriver månedsdagen som et desimaltall, område (1,31) tm_mday Oe Skriver dagen i måneden, som med% e, ved hjelp av det alternative numeriske systemet tm_mday Ukedag en Skriver forkortet ukedagsnavn, f.eks. Fre (stedavhengig) tm_wday EN Skriver full ukedag, f.eks. Fredag (stedavhengig) tm_wday w Skriver ukedag som et desimaltall, område (0-6) (søndag er 0) tm_wday Ow Skriver ukedag som med% w, ved hjelp av det alternative numeriske systemet tm_wday u Skriver ukedag som et desimaltall, der mandag er 1 (ISO 8601-format), rekkevidde (1-7) tm_wday Ou Skriver ukedag som% u, ved hjelp av det alternative numeriske systemet tm_wday Time, minutt, sekund H Skriver time som et desimaltall, rekkevidde (00,23) tm_time ÅH Skriver time som% H ved hjelp av det alternative numeriske systemet tm_time Jeg Skriver time som et desimaltall, rekkevidde (01,12) tm_time OI Skriver time som% I, ved hjelp av det alternative numeriske systemet tm_time M Skriver minutt som desimaltall, rekkevidde (00,59) tm_min OM Skriver minutt som med% M, ved hjelp av det alternative numeriske systemet tm_min S Skriver andre som desimaltall, rekkevidde (00,60) tm_sec OS Skriver andre som% S, ved hjelp av det alternative numeriske systemet tm_sec Annen c Skriver standard dato og klokkeslett, f.eks. Søn 17 okt 04:41:13 2010 (stedavhengig) alle Ec Skriver stedets alternative dato og klokkeslettstreng alle x Skriver lokalisert datarepresentasjon (stedavhengig) alle Eks Skriver stedets alternative datorepresentasjon alle X Skriver lokalisert tidsrepresentasjon (stedavhengig) alle EX Skriver stedets alternative tidsrepresentasjon alle D Tilsvarer "% m /% d /% y" tm_mon, tm_mday, tm_year F Tilsvarer "% Y-% m-% d" tm_mon, tm_mday, tm_year r Skriver lokalisert 12-timers tid tm_hour, tm_min, tm_sec R Tilsvarer "% H:% M" tm_time, tm_min T Tilsvarer "% H:% M:% S tm_hour, tm_min, tm_sec P Skriver lokalisert am eller pm (stedavhengig) tm_time z skriver forskyvning fra UTC i ISO 8601-format (f.eks. -0545), eller ingen tegn hvis tidssoneinformasjonen ikke er tilgjengelig tm_isdst Z Skriver tidssone navn eller forkortelse, eller ingenting hvis tidssoneinformasjonen ikke er tilgjengelig (stedavhengig) tm_isdst - tid: Datoen og klokkeslettet som skal konverteres.
strftime () Returverdi
- Når det lykkes, returnerer strftime () -funksjonen antall byte som er skrevet i tegnmatrisen som er pekt på av str, og som ikke inkluderer den avsluttende ' 0'.
- Hvis antall ble nådd før hele strengen kunne lagres, returneres 0 og innholdet er udefinert.
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 kjører programmet, vil utdataene være:
I dag er det 21. april 2017 Nåværende tid er 11:20:42