Funksjonen wcsftime () i C ++ konverterer gitt dato og klokkeslett fra en gitt kalendertid til en null-avsluttet bred tegnstreng i henhold til en formatstreng.
Funksjonen wcsftime () er definert i topptekstfilen.
wcsftime () prototype
size_t wcsftime (wchar_t * str, size_t count, const wchar_t * format, const tm * time);
Funksjonen wcsftime () tar fire argumenter: str, count, format og tid.
Dato- og klokkeslettinformasjonen som tiden peker på, konverteres til et null-avsluttet bredt tegn basert på verdien av formatet og lagres i det brede utvalget som str. Det skrives maksimalt antall byte.
wcsftime () Parametere
- str: peker til det første elementet i det brede tegnsettet for å lagre resultatet.
- count: Maksimalt antall brede tegn å skrive.
- format: peker til en null-avsluttet bred tegnstreng som spesifiserer formatet for konvertering. Formatstrengen består av konverteringsspesifikator (begynner med% og eventuelt etterfulgt av E eller O) og andre vanlige brede tegn.
De vanlige brede tegnene, inkludert det avsluttende nullbrede tegnet, kopieres som det er til den brede strengen. Formatspesifikatorer for wcsftime ()Konverteringsspesifikator 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.
wcsftime () Returverdi
- Når det lykkes, returnerer wcsftime () -funksjonen antallet brede tegn skrevet i det brede tegnsettet som pekes på av str som ikke inkluderer den avsluttende L ' 0'.
- Hvis antall ble nådd før hele strengen kunne lagres, returneres 0 og innholdet er udefinert.
Eksempel: Hvordan fungerer wcsftime ()?
#include #include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; wchar_t date_string(100); wchar_t time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); wcsftime(date_string, 50, L"Today is %B %d, %Y", curr_tm); wcsftime(time_string, 50, L"Current time is %T", curr_tm); wcout << date_string << endl; wcout << 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 14:42:45