Strftime () -funktionen i C ++ konverterar det angivna datumet och tiden från en given kalendertid till en null-avslutad multibyt-teckensträng enligt en formatsträng.
Funktionen strftime () definieras i rubrikfilen.
strftime () prototyp
size_t strftime (char * str, size_t count, const char * format, const tm * time);
Funktionen strftime () tar fyra argument: str, count, format och tid.
Datum- och tidsinformationen som tid pekas om konverteras till ett null-avslutat multibyt-tecken baserat på formatets värde och lagras i den matris som str. Högst räknas byte.
strftime () Parametrar
- str: Pekare till det första elementet i teckenmatrisen för att lagra resultatet.
- count: Maximalt antal byte att skriva.
- format: pekare till en null-terminated multibyte teckensträng som anger formatet för konvertering. Formatsträngen består av konverteringsspecifikator (börjar med% och eventuellt följt av E eller O) och andra vanliga tecken.
De vanliga tecknen inklusive det avslutande nollkaraktären kopieras som det är till utmatningssträngen. strftime () formatspecifikationerConversion Specifier Beskrivning Begagnade fält % Skriver karaktären% n Skriver newline karaktär t Skriver horisontell flik karaktär År Y Skriver fyra siffror per år, t.ex. 2011 tm_år EY Skriver fyra siffror per år i lokalens alternativa representation tm_år y Skriver de senaste 2 siffrorna i året, intervall (00, 99) tm_år Oy Skriver årets sista två siffror i lokalens alternativa representation tm_år Ey Skriver år som förskjutning från lokalens alternativa kalenderperiod% EC (språkberoende) tm_år C Skriver årets första 2 siffror, intervall (00,99) tm_år EG Skriver basårets (period) namn i lokalens alternativa representation, tm_år G Skriver ISO 8601 veckobaserat år, dvs. året som innehåller den angivna veckan. tm_year, tm_wday, tm_yday g Skriver de två sista siffrorna i ISO 8601 veckobaserat år, dvs. året som innehåller den angivna veckan (intervall (00,99)). tm_year, tm_wday, tm_yday Månad b Skriver förkortat månadsnamn, t.ex. jan tm_mon h Samma som b tm_mon B Skriver fullständigt månadsnamn, t.ex. januari tm_mon m Skriver månad som decimaltal, intervall (01,12) tm_mon Om Skriver månad med lokalens alternativa numeriska system tm_mon Vecka U Skriver årets vecka som ett decimaltal från 00 till 53 (söndag är veckans första dag) tm_year, tm_wday, tm_yday OU Skriver årets vecka som% U med hjälp av det alternativa numeriska systemet tm_year, tm_wday, tm_yday W Skriver årets vecka som ett decimaltal från 00 till 53 (måndag är den första dagen i veckan) tm_year, tm_wday, tm_yday AJ Skriver årets vecka som% W med det alternativa numeriska systemet tm_year, tm_wday, tm_yday V Skriver ISO 8601 vecka av året (intervall (01,53)). tm_year, tm_wday, tm_yday OV Skriver årets vecka, som% V, med det alternativa numeriska systemet tm_year, tm_wday, tm_yday Årets dag / månad j Skriver årets dag som ett decimaltal, intervall (001 366) tm_dag d Skriver månadsdagen som ett decimaltal, intervall (01,31) tm_mday Od Skriver dagen i månaden, som med% d, med det alternativa numeriska systemet tm_mday e Skriver månadsdagen som ett decimaltal, intervall (1,31) tm_mday Oe Skriver månadsdagen, som med% e, med det alternativa numeriska systemet tm_mday Veckodag a Skriver förkortat veckodagsnamn, t.ex. fre (språkberoende) tm_wday A Skriver hela veckodagens namn, t.ex. fredag (språkberoende) tm_wday w Skriver vardag som ett decimaltal, intervall (0-6) (söndag är 0) tm_wday Aj Skriver vardag som med% w, med hjälp av det alternativa numeriska systemet tm_wday u Skriver vardag som ett decimaltal, där måndag är 1 (ISO 8601-format), intervall (1-7) tm_wday Ou Skriver vardag som% u, med hjälp av det alternativa numeriska systemet tm_wday Timme, minut, sekund H Skriver timme som ett decimaltal, intervall (00,23) tm_hour ÅH Skriver timme som% H, med hjälp av det alternativa numeriska systemet tm_hour Jag Skriver timme som ett decimaltal, intervall (01,12) tm_hour OI Skriver timme som% I, med hjälp av det alternativa numeriska systemet tm_hour M Skriver minut som decimaltal, intervall (00,59) tm_min OM Skriver minut som% M med det alternativa numeriska systemet tm_min S Skriver andra som ett decimaltal, intervall (00,60) tm_sec OS Skriver andra som% S, med hjälp av det alternativa numeriska systemet tm_sec Övrig c Skriver standarddatum och tidssträng, t.ex. sön 17 okt 04:41:13 2010 (språkberoende) Allt Ec Skriver språkets alternativa datum- och tidssträng Allt x Skriver lokaliserad datumrepresentation (språkberoende) Allt Ex Skriver språkets alternativa datumrepresentation Allt X Skriver lokaliserad tidsrepresentation (språkberoende) Allt EX Skriver lokalens alternativa tidsrepresentation Allt D Motsvarar "% m /% d /% y" tm_mon, tm_mday, tm_year F Motsvarar "% Y-% m-% d" tm_mon, tm_mday, tm_year r Skriver lokaliserad 12-timmars klocktid tm_hour, tm_min, tm_sec R Motsvarar "% H:% M" tm_hour, tm_min T Motsvarande "% H:% M:% S tm_hour, tm_min, tm_sec P Skriver lokaliserad am eller pm (språkberoende) tm_hour z skriver offset från UTC i ISO 8601-format (t.ex. -0545), eller inga tecken om tidszoninformationen inte är tillgänglig tm_isdst Z Skriver tidszons namn eller förkortning, eller ingenting om tidszonsinformationen inte är tillgänglig (språkberoende) tm_isdst - tid: Datum och tid information som ska konverteras.
strftime () Returvärde
- Vid framgång returnerar strftime () -funktionen antalet byte skrivna i teckenuppsättningen pekad av str som inte inkluderar den avslutande ' 0'.
- Om antalet nåddes innan hela strängen kunde lagras returneras 0 och innehållet är odefinierat.
Exempel: Hur fungerar strftime () -funktionen?
#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ör programmet blir resultatet:
Idag är den 21 april 2017 Nuvarande tid är 11:20:42