De functie strftime () in C ++ converteert de gegeven datum en tijd van een bepaalde kalendertijd naar een multibyte-tekenreeks met null-beëindigde tekens volgens een opmaakreeks.
De functie strftime () is gedefinieerd in het header-bestand.
strftime () prototype
size_t strftime (char * str, size_t count, const char * format, const tm * time);
De functie strftime () heeft 4 argumenten nodig: str, count, format en time.
De datum- en tijdinformatie waarnaar door de tijd wordt verwezen, wordt geconverteerd naar een multibyte-teken met een null-einde op basis van de waarde van format en wordt opgeslagen in de array waarnaar wordt verwezen door str. Er worden maximaal aantal bytes geschreven.
strftime () Parameters
- str: Pointer naar het eerste element van de character array om het resultaat op te slaan.
- count: Maximaal aantal bytes om te schrijven.
- format: Pointer naar een multibyte-tekenreeks met een null-einde die het conversieformaat specificeert. De format string bestaat uit een conversie specificatie (beginnend met% en optioneel gevolgd door E of O) en andere gewone karakters.
De gewone karakters inclusief het afsluitende null-karakter worden gekopieerd zoals ze zijn naar de output string. strftime () formaatspecificatiesConversiespecificatie Omschrijving Gebruikte velden % Schrijft het karakter% n Schrijft een teken voor een nieuwe regel t Schrijft een horizontaal tab-teken Jaar Y Schrijft 4 cijfers van het jaar, bijvoorbeeld 2011 tm_jaar EY Schrijft 4 cijfers van het jaar in de alternatieve weergave van de locale tm_jaar y Schrijft de laatste 2 cijfers van het jaar, bereik (00, 99) tm_jaar Oy Schrijft de laatste 2 cijfers van het jaar in de alternatieve weergave van de locale tm_jaar Ey Schrijft jaar als offset van de alternatieve kalenderperiode van de locale% EC (afhankelijk van de locale) tm_jaar C Schrijft de eerste 2 cijfers van het jaar, bereik (00,99) tm_jaar EC Schrijft de naam van het basisjaar (punt) in de alternatieve weergave van de landinstelling, tm_jaar G Schrijft ISO 8601 jaar op weekbasis, dwz het jaar dat de opgegeven week bevat. tm_jaar, tm_wday, tm_dag g Schrijft de laatste 2 cijfers van ISO 8601-jaar op weekbasis, dwz het jaar dat de opgegeven week bevat (bereik (00,99)). tm_jaar, tm_wday, tm_dag Maand b Schrijft een afgekorte maandnaam, bijvoorbeeld Jan tm_mon h Hetzelfde als b tm_mon B Schrijft de volledige maandnaam, bijvoorbeeld januari tm_mon m Schrijft maand als een decimaal getal, bereik (01,12) tm_mon Om Schrijft maand met behulp van het alternatieve numerieke systeem van de landinstelling tm_mon Week U Schrijft week van het jaar als een decimaal getal van 00 tot 53 (zondag is de eerste dag van de week) tm_jaar, tm_wday, tm_dag OE Schrijft week van het jaar in% U met behulp van het alternatieve numerieke systeem tm_jaar, tm_wday, tm_dag W. Schrijft week van het jaar als een decimaal getal van 00 tot 53 (maandag is de eerste dag van de week) tm_jaar, tm_wday, tm_dag OW Schrijft de week van het jaar in% W met behulp van het alternatieve numerieke systeem tm_jaar, tm_wday, tm_dag V. Schrijft ISO 8601 week van het jaar (bereik (01,53)). tm_jaar, tm_wday, tm_dag OV Schrijft week van het jaar, in% V, met behulp van het alternatieve numerieke systeem tm_jaar, tm_wday, tm_dag Dag van het jaar / maand j Schrijft de dag van het jaar als een decimaal getal, bereik (001,366) tm_yday d Schrijft de dag van de maand als een decimaal getal, bereik (01,31) tm_mday Od Schrijft de dag van de maand, zoals door% d, met behulp van het alternatieve numerieke systeem tm_mday e Schrijft de dag van de maand als een decimaal getal, bereik (1,31) tm_mday Oe Schrijft de dag van de maand, zoals% e, met behulp van het alternatieve numerieke systeem tm_mday Dag van de week een Schrijft een afgekorte weekdagnaam, bijv. Fri (afhankelijk van de locale) tm_wday EEN Schrijft de volledige naam van de weekdag, bijv. Vrijdag (afhankelijk van de locale) tm_wday w Schrijft weekdag als een decimaal getal, bereik (0-6) (zondag is 0) tm_wday Ow Schrijft weekdag als% w, met behulp van het alternatieve numerieke systeem tm_wday u Schrijft weekdag als een decimaal getal, waarbij maandag 1 is (ISO 8601-indeling), bereik (1-7) tm_wday Ou Schrijft weekdag als door% u, met behulp van het alternatieve numerieke systeem tm_wday Uur, minuut, seconde H. Schrijft uur als een decimaal getal, bereik (00,23) tm_uur OH Schrijft uren als% H, met behulp van het alternatieve numerieke systeem tm_uur ik Schrijft uur als een decimaal getal, bereik (01,12) tm_uur OI Schrijft uur als% I, met behulp van het alternatieve numerieke systeem tm_uur M. Schrijft minuut als een decimaal getal, bereik (00,59) tm_min OM Schrijft minuut als% M, met behulp van het alternatieve numerieke systeem tm_min S Schrijft de tweede als een decimaal getal, bereik (00,60) tm_sec OS Schrijft als tweede door% S, met behulp van het alternatieve numerieke systeem tm_sec Andere c Schrijft een standaard datum- en tijdreeks, bijv. Zo 17 oktober 04:41:13 2010 (afhankelijk van de locale) alle Ec Schrijft de alternatieve tekenreeks voor datum en tijd van de locale alle X Schrijft een gelokaliseerde datumweergave (afhankelijk van de locale) alle Ex Schrijft de alternatieve datumweergave van de locale alle X Schrijft gelokaliseerde tijdsweergave (afhankelijk van de locale) alle EX Schrijft de alternatieve tijdweergave van de locale alle D Komt overeen met "% m /% d /% y" tm_mon, tm_mday, tm_year F. Komt overeen met "% Y-% m-% d" tm_mon, tm_mday, tm_year r Schrijft gelokaliseerde 12-uurs kloktijd tm_uur, tm_min, tm_sec R Komt overeen met "% H:% M" tm_uur, tm_min T Komt overeen met "% H:% M:% S tm_uur, tm_min, tm_sec P. Schrijft gelokaliseerde am of pm (afhankelijk van de locale) tm_uur z schrijft offset van UTC in de ISO 8601-indeling (bijv. -0545), of geen tekens als de tijdzone-informatie niet beschikbaar is tm_isdst Z Schrijft tijdzonienaam of afkorting, of niets als de tijdzonegegevens niet beschikbaar zijn (afhankelijk van de landinstelling) tm_isdst - tijd: de datum- en tijdinformatie die moet worden geconverteerd.
strftime () Retourwaarde
- Bij succes retourneert de functie strftime () het aantal bytes dat is geschreven in de tekenreeks waarnaar wordt verwezen door str, zonder de afsluitende ' 0'.
- Als het aantal werd bereikt voordat de hele tekenreeks kon worden opgeslagen, wordt 0 geretourneerd en is de inhoud niet gedefinieerd.
Voorbeeld: hoe werkt strftime () functie?
#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; )
Wanneer u het programma uitvoert, is de uitvoer:
Het is vandaag 21 april 2017. De huidige tijd is 11:20:42