Funkcia wcsftime () v C ++ prevádza zadaný dátum a čas z daného kalendárneho času na reťazec širokých znakov s nulovým zakončením podľa formátovacieho reťazca.
Funkcia wcsftime () je definovaná v hlavičkovom súbore.
prototyp wcsftime ()
size_t wcsftime (wchar_t * str, size_t count, const wchar_t * format, const tm * time);
Funkcia wcsftime () má 4 argumenty: str, count, format a time.
Informácie o dátume a čase, na ktoré ukazuje čas, sa prevedú na široký znak s nulovým zakončením na základe hodnoty formátu a sú uložené v širokom poli, na ktoré ukazuje str. Maximálny počet zapísaných bajtov je.
Parametre wcsftime ()
- str: Ukazovateľ na prvý prvok širokého znakového poľa na uloženie výsledku.
- počet: Maximálny počet širokých znakov na zápis.
- formát: Ukazovateľ na reťazec širokých znakov s nulovou koncovkou, ktorý určuje formát prevodu. Reťazec formátu pozostáva zo špecifikátora prevodu (začínajúceho na% a voliteľne nasledovaného znakom E alebo O) a ďalších bežných širokých znakov.
Obyčajné široké znaky vrátane ukončovacieho prázdneho širokého znaku sa skopírujú tak, ako je, do výstupného širokého reťazca. Špecifikátory formátu pre wcsftime ()Špecifikátor konverzie Popis Použité polia % Napíše znak% n Píše znak nového riadku t Zapíše znak vodorovnej tabulátora Rok Y. Píše 4 číslice roku, napr. 2011 tm_rok EY Píše 4 číslice roka v alternatívnom zastúpení miestneho nastavenia tm_rok r Zapisuje posledné 2 číslice roku, rozsah (00, 99) tm_rok Oy Zapíše posledné 2 číslice roka do alternatívneho zastúpenia miestneho nastavenia tm_rok Ey Píše rok ako posun od alternatívneho kalendárneho obdobia miestneho nastavenia% EC (podľa miestneho nastavenia) tm_rok C. Zapisuje prvé 2 číslice roku, rozsah (00,99) tm_rok ES Zapíše názov základného roku (obdobia) do alternatívneho znázornenia miestneho nastavenia, tm_rok G Píše ISO 8601 rok založený na týždňoch, tj rok, ktorý obsahuje zadaný týždeň. tm_year, tm_wday, tm_yday g Zapisuje posledné 2 číslice ISO 8601 roku založeného na týždni, tj roku, ktorý obsahuje zadaný týždeň (rozsah (00,99)). tm_year, tm_wday, tm_yday Mesiac b Píše skrátený názov mesiaca, napr. Jan tm_mon h Rovnako ako b tm_mon B Píše meno celého mesiaca, napr. Január tm_mon m Zapíše mesiac ako desatinné číslo, rozsah (01,12) tm_mon Om Píše mesiac pomocou alternatívneho číselného systému miestneho nastavenia tm_mon Týždeň U Píše týždeň v roku ako desatinné číslo od 00 do 53 (nedeľa je prvý deň v týždni) tm_year, tm_wday, tm_yday OU Píše týždeň v roku ako% U pomocou alternatívneho číselného systému tm_year, tm_wday, tm_yday Ž Píše týždeň v roku ako desatinné číslo od 00 do 53 (pondelok je prvý deň v týždni) tm_year, tm_wday, tm_yday OW Zapíše týždeň v roku ako% W pomocou alternatívneho číselného systému tm_year, tm_wday, tm_yday V. Píše ISO 8601 týždeň v roku (rozsah (01,53)). tm_year, tm_wday, tm_yday OV Zapíše týždeň v roku ako% V, pričom použije alternatívny numerický systém tm_year, tm_wday, tm_yday Deň v roku / mesiaci j Zapisuje deň v roku ako desatinné číslo, rozsah (001 366) tm_yday d Zapíše deň v mesiaci ako desatinné číslo, rozsah (01,31) tm_mday Od Zapíše deň v mesiaci, ako% d, pomocou alternatívneho číselného systému tm_mday e Zapisuje deň v mesiaci ako desatinné číslo, rozsah (1,31) tm_mday Oe Zapíše deň v mesiaci, ako% e, pomocou alternatívneho číselného systému tm_mday Deň v týždni a Píše skrátený názov dňa v týždni, napr. Pi (podľa miestneho nastavenia) tm_wday A Píše celé dni v týždni, napr. Piatok (závisí od miestneho nastavenia) tm_wday w Píše všedný deň ako desatinné číslo, rozsah (0-6) (nedeľa je 0) tm_wday Ou Píše všedný deň ako% w, pričom sa používa alternatívny numerický systém tm_wday u Píše všedný deň ako desatinné číslo, kde pondelok je 1 (formát ISO 8601), rozsah (1-7) tm_wday Ou Píše všedný deň ako% u, pričom sa používa alternatívny numerický systém tm_wday Hodina, minúta, sekunda H Píše hodinu ako desatinné číslo, rozsah (00,23) tm_hodina OH Zapíše hodinu ako% H pomocou alternatívneho číselného systému tm_hodina Ja Zapíše hodinu ako desatinné číslo, rozsah (01,12) tm_hodina OI Píše hodinu ako% I, pomocou alternatívneho číselného systému tm_hodina M Zapíše minútu ako desatinné číslo, rozsah (00,59) tm_min OM Zápis minúty ako o% M pomocou alternatívneho číselného systému tm_min S Sekunda sa zapíše ako desatinné číslo, rozsah (00,60) tm_sec OS Druhý zápis bude ako% S, pričom sa použije alternatívny numerický systém tm_sec Iné c Zapíše štandardný reťazec dátumu a času, napr. Ne 17.októbra 04:41:13 2010 (podľa miestneho nastavenia) všetko Ec Zapíše alternatívny reťazec dátumu a času miestneho nastavenia všetko X Zapíše lokalizované zastúpenie dátumu (závisí od miestneho nastavenia) všetko Pr Zapíše alternatívnu reprezentáciu dátumu miestneho nastavenia všetko X Zapisuje lokalizovanú časovú reprezentáciu (závisí od miestneho nastavenia) všetko EX Zapíše alternatívne časové znázornenie miestneho nastavenia všetko D Ekvivalent k „% m /% d /% y“ tm_mon, tm_mday, tm_year F Ekvivalent k „% Y-% m-% d“ tm_mon, tm_mday, tm_year r Píše lokalizovaný 12-hodinový čas tm_hour, tm_min, tm_sec R Ekvivalent k „% H:% M“ tm_hour, tm_min T Ekvivalent k „% H:% M:% S tm_hour, tm_min, tm_sec P Píše lokalizované dopoludnia alebo večer (podľa miestneho nastavenia) tm_hodina z zapíše posun od UTC vo formáte ISO 8601 (napr. -0545) alebo bez znakov, ak nie sú k dispozícii informácie o časovom pásme tm_isdst Z Zapíše názov alebo skratku časového pásma, alebo nič, ak informácie o časovom pásme nie sú k dispozícii (závisí od miestneho nastavenia) tm_isdst - čas: Informácie o dátume a čase, ktoré sa majú previesť.
wcsftime () Vrátená hodnota
- Pri úspechu funkcia wcsftime () vráti počet širokých znakov zapísaných do širokého poľa znakov, na ktoré ukazuje str bez koncovky L ' 0'.
- Ak bol počet dosiahnutý skôr, ako bolo možné uložiť celý reťazec, vráti sa 0 a obsah nie je definovaný.
Príklad: Ako funguje funkcia 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; )
Po spustení programu bude výstup:
Dnes je 21. apríla 2017 Aktuálny čas je 14:42:45