Funkce wcsftime () v C ++ převede dané datum a čas z daného času v kalendáři na řetězec širokých znaků s nulovým zakončením podle řetězce formátu.
Funkce wcsftime () je definována v hlavičkovém souboru.
prototyp wcsftime ()
size_t wcsftime (wchar_t * str, size_t count, const wchar_t * format, const tm * time);
Funkce wcsftime () má 4 argumenty: str, count, format a time.
Informace o datu a čase, na které ukazuje čas, jsou převedeny na široký znak s nulovým zakončením na základě hodnoty formátu a jsou uloženy v širokém poli, na které ukazuje str. Je zapsáno nanejvýš počet bajtů.
wcsftime () parametry
- str: Ukazatel na první prvek širokého pole znaků pro uložení výsledku.
- count: Maximální počet širokých znaků pro zápis.
- format: Ukazatel na řetězec širokých znaků s nulovým zakončením určující formát převodu. Řetězec formátu se skládá ze specifikátoru převodu (začínajícího% a volitelně následovaného E nebo O) a dalších běžných širokých znaků.
Obyčejné široké znaky včetně ukončovacího prázdného širokého znaku jsou kopírovány tak, jak jsou, do výstupního širokého řetězce. Specifikátory formátu pro wcsftime ()Specifikátor převodu Popis Použitá pole % Zapíše znak% n Zapíše znak nového řádku t Zapíše znak vodorovné karty Rok Y Zapíše 4 číslice roku, např. 2011 tm_rok EY Zapíše 4 číslice roku v alternativním vyjádření národního prostředí tm_rok y Zapíše poslední 2 číslice roku, rozsah (00, 99) tm_rok Dobře Zapíše poslední 2 číslice roku do alternativního vyjádření národního prostředí tm_rok Ey Zapíše rok jako posun od alternativního kalendářního období národního prostředí% EC (podle národního prostředí) tm_rok C Zapíše první 2 číslice roku, rozsah (00,99) tm_rok ES Zapíše název základního roku (období) do alternativního znázornění národního prostředí, tm_rok G Píše ISO 8601 týdenní rok, tj. Rok, který obsahuje zadaný týden. tm_year, tm_wday, tm_yday G Zapíše poslední 2 číslice roku založeného na ISO 8601 za týden, tj. Rok, který obsahuje zadaný týden (rozsah (00,99)). tm_year, tm_wday, tm_yday Měsíc b Píše zkrácený název měsíce, např. Jan tm_mon h Stejné jako b tm_mon B Píše celé jméno měsíce, např. Leden tm_mon m Zapíše měsíc jako desetinné číslo, rozsah (01,12) tm_mon Om Zapisuje měsíc pomocí alternativního numerického systému národního prostředí tm_mon Týden U Píše týden v roce jako desetinné číslo od 00 do 53 (neděle je první den v týdnu) tm_year, tm_wday, tm_yday OU Zapíše týden v roce jako% U pomocí alternativního numerického systému tm_year, tm_wday, tm_yday Ž Píše týden v roce jako desetinné číslo od 00 do 53 (pondělí je první den v týdnu) tm_year, tm_wday, tm_yday OW Zapíše týden v roce jako% W pomocí alternativního numerického systému tm_year, tm_wday, tm_yday PROTI Píše ISO 8601 týden v roce (rozsah (01,53)). tm_year, tm_wday, tm_yday OV Zapíše týden v roce jako% V pomocí alternativního numerického systému tm_year, tm_wday, tm_yday Den v roce / měsíc j Zapíše den v roce jako desetinné číslo, rozsah (001 366) tm_yday d Zapíše den v měsíci jako desetinné číslo, rozsah (01,31) tm_mday Od Zapíše den v měsíci jako% d pomocí alternativního číselného systému tm_mday E Zapíše den v měsíci jako desetinné číslo, rozsah (1,31) tm_mday Oe Zapíše den v měsíci jako% e pomocí alternativního numerického systému tm_mday Den v týdnu A Zapíše zkrácený název dne v týdnu, např. Pá (podle národního prostředí) tm_wday A Píše celý den v týdnu, např. Pátek (podle národního prostředí) tm_wday w Zapíše den v týdnu jako desetinné číslo, rozsah (0-6) (neděle je 0) tm_wday Ou Zapíše den v týdnu jako% w, pomocí alternativního numerického systému tm_wday u Zapíše den v týdnu jako desetinné číslo, kde pondělí je 1 (formát ISO 8601), rozsah (1-7) tm_wday Ou Zapíše den v týdnu jako% u pomocí alternativní numerické soustavy tm_wday Hodina, minuta, sekunda H Zapíše hodinu jako desetinné číslo, rozsah (00,23) tm_hodina ACH Zapíše hodinu jako% H pomocí alternativního numerického systému tm_hodina Já Zapíše hodinu jako desetinné číslo, rozsah (01,12) tm_hodina OI Zapíše hodinu jako% I pomocí alternativního numerického systému tm_hodina M Zapíše minutu jako desetinné číslo, rozsah (00,59) tm_min OM Zapíše minutu jako% M, pomocí alternativního číselného systému tm_min S Zapíše druhé jako desetinné číslo, rozsah (00,60) tm_sec OS Zapisuje druhý jako% S pomocí alternativního numerického systému tm_sec jiný C Zapíše standardní řetězec data a času, např. Ne 17. října 04:41:13 2010 (podle národního prostředí) Všechno Ec Zapíše alternativní řetězec data a času národního prostředí Všechno X Zapíše lokalizovanou reprezentaci data (podle národního prostředí) Všechno Př Zapíše národní reprezentaci data podle data Všechno X Zapíše lokalizovanou časovou reprezentaci (podle národního prostředí) Všechno EX Zapíše alternativní časovou reprezentaci národního prostředí Všechno 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ý 12hodinový čas tm_hour, tm_min, tm_sec R Ekvivalent k „% H:% M“ tm_hodina, tm_min T Ekvivalent k „% H:% M:% S tm_hour, tm_min, tm_sec P Zapisuje lokalizované dopoledne nebo odpoledne (podle národního prostředí) tm_hodina z zapisuje offset od UTC ve formátu ISO 8601 (např. -0545), nebo žádné znaky, pokud nejsou k dispozici informace o časovém pásmu tm_isdst Z Zapíše název nebo zkratku časového pásma, nebo nic, pokud informace o časovém pásmu nejsou k dispozici (podle národního prostředí) tm_isdst - čas: informace o datu a čase, které se mají převést.
wcsftime () Návratová hodnota
- Při úspěchu funkce wcsftime () vrací počet širokých znaků zapsaných do širokého pole znaků, na které ukazuje str bez koncovky L ' 0'.
- Pokud bylo dosaženo počtu před uložením celého řetězce, je vrácena 0 a obsah není definován.
Příklad: Jak funguje funkce 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; )
Když spustíte program, výstup bude:
Dnes je 21. dubna 2017 Aktuální čas je 14:42:45