Sdílet prostřednictvím


strftime, wcsftime, _strftime_l, _wcsftime_l

Naformátuje časový řetězec.

Syntaxe

size_t strftime(
   char *strDest,
   size_t maxsize,
   const char *format,
   const struct tm *timeptr
);
size_t _strftime_l(
   char *strDest,
   size_t maxsize,
   const char *format,
   const struct tm *timeptr,
   _locale_t locale
);
size_t wcsftime(
   wchar_t *strDest,
   size_t maxsize,
   const wchar_t *format,
   const struct tm *timeptr
);
size_t _wcsftime_l(
   wchar_t *strDest,
   size_t maxsize,
   const wchar_t *format,
   const struct tm *timeptr,
   _locale_t locale
);

Parametry

strDest
Výstupní řetězec

maxsize
strDest Velikost vyrovnávací paměti měřená v znaznachu (char nebo wchar_t).

format
Řetězec řízení formátu

timeptr
tm datová struktura.

locale
Národní prostředí, které se má použít

Vrácená hodnota

strftime vrátí počet znaků umístěných v strDest a wcsftime vrátí odpovídající počet širokých znaků.

Pokud celkový počet znaků, včetně ukončující hodnoty null, je větší než maxsize, strftime a wcsftime vrátí hodnotu 0 a obsah strDest jsou neurčité.

Počet znaků je strDest roven počtu literálových znaků v format, plus všechny znaky, které mohou být přidány prostřednictvím format kódů formátování. Koncová hodnota null řetězce se nezapočítává do návratové hodnoty.

Poznámky

wcsftime Funkce strftime formátuje tm časovou hodnotu podle timeptr zadaného format argumentu a uloží výsledek do vyrovnávací paměti strDest. Ve většině případů maxsize jsou znaky umístěné v řetězci. Popis polí ve struktuře timeptr naleznete v tématu asctime. wcsftime je ekvivalent širokého znaku strftime; jeho argument string-pointer odkazuje na řetězec širokého znaku. Tyto funkce se chovají stejně jinak.

Tato funkce ověří své parametry. Pokud strDest, formatnebo timeptr je null ukazatel, nebo pokud tm datová struktura adresovaná timeptr je neplatná (například pokud obsahuje hodnoty mimo rozsah pro čas nebo datum), nebo pokud format řetězec obsahuje neplatný formátovací kód, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, vrátí funkce hodnotu 0 a nastaví errno na EINVALhodnotu .

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

TCHAR.H Rutinní _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tcsftime strftime strftime wcsftime

Argument format se skládá z jednoho nebo více kódů; stejně jako v printf, kódy formátování jsou před znakem procenta (%). Znaky, které nezačínají % , se zkopírují beze změny do strDest. Kategorie LC_TIME aktuálního národního prostředí má vliv na formátování výstupu strftime. (Další informace naleznete v LC_TIMEtématu setlocale.) wcsftime Funkce strftime používají aktuálně nastavené národní prostředí. _wcsftime_l Verze _strftime_l těchto funkcí jsou stejné s tím rozdílem, že přebírají národní prostředí jako parametr a používají se místo aktuálně nastaveného národního prostředí. Další informace naleznete v tématu Národní prostředí.

Funkce strftime podporují tyto kódy formátování:

Kód Náhradní řetězec
%a Zkrácený název dne v týdnu v národním prostředí
%A Úplný název dne v týdnu v národním prostředí
%b Zkrácený název měsíce v národním prostředí
%B Úplný název měsíce v národním prostředí
%c Reprezentace data a času vhodná pro národní prostředí
%C Rok vydělený číslem 100 a zkrácený na celé číslo jako desetinné číslo (00−99)
%d Den v měsíci jako desetinné číslo (01 –31)
%D Ekvivalent k %m/%d/%y
%e Den v měsíci jako desetinné číslo (1 – 31), kde jednociferné číslice předchází mezera
%F Ekvivalent k %Y-%m-%d
%g Posledních 2 číslic v roce podle iso 8601 v týdnu jako desetinné číslo (00 –99)
%G Rok založený na týdnu iso 8601 jako desetinné číslo
%h Zkrácený název měsíce (ekvivalentní %b)
%H Hodina ve formátu 24 hodin (00 –23)
%I Hodina ve formátu 12 hodin (01 –12)
%j Den v roce jako desetinné číslo (001 – 366)
%m Měsíc jako desetinné číslo (01 –12)
%M Minuta jako desetinné číslo (00 –59)
%n Znak nového řádku (\n)
%p Indikátor národního prostředí A.M./P.M. pro 12hodinový formát
%r 12hodinový hodinový čas národního prostředí
%R Ekvivalent k %H:%M
%S Sekunda jako desetinné číslo (00 –59)
%t Vodorovný znak tabulátoru (\t)
%T %H:%M:%SEkvivalentní formátu iso 8601
%u ISO 8601 pracovní den jako desetinné číslo (1 - 7; Pondělí je 1)
%U Číslo týdne v roce jako desetinné číslo (00 – 53), kde první neděle je první den týdne 1
%V Číslo týdne ISO 8601 jako desetinné číslo (00 –53)
%w Den v týdnu jako desetinné číslo (0 – 6; Neděle je 0)
%W Číslo týdne roku jako desetinné číslo (00 –53), kde první pondělí je první den týdne 1
%x Vyjádření data pro národní prostředí
%X Časová reprezentace národního prostředí
%y Rok bez století, jako desetinné číslo (00 – 99)
%Y Rok se stoletím jako desetinné číslo
%z Posun od UTC ve formátu ISO 8601; žádné znaky, pokud je časové pásmo neznámé
%Z Buď název časového pásma národního prostředí, nebo zkratka časového pásma v závislosti na nastavení registru; žádné znaky, pokud je časové pásmo neznámé
%% Znaménko procent

Stejně jako ve printf funkci může # příznak předponovat jakýkoli kód formátování. V takovém případě se význam kódu formátu změní následujícím způsobem.

Formátování kódu Význam
%#a, %#A, %#b, %#B, %#g, %#G, %#h, %#n, %#p, %#t, %#u, %#w, %#X, %#z, %#Z, %#% # příznak je ignorován.
%#c Dlouhé vyjádření data a času, vhodné pro národní prostředí. Příklad: "Úterý, 14. března 1995, 12:41:29".
%#x Dlouhé vyjádření data, odpovídající národnímu prostředí. Příklad: "Úterý, březen 14, 1995".
%#d, %#D, %#e, %#F, %#H, %#I, %#j, %#m, %#M, %#r, %#R, %#S, %#T, %#U, %#V, %#W, %#y, %#Y Odeberte úvodní nuly nebo mezery (pokud existuje).

Iso 8601 týden a týden založený rok vyrobený %Vspolečností , %ga %G, používá týden, který začíná v pondělí. Týden 1 je týden, který obsahuje čtvrtý den ledna, což je první týden, který zahrnuje alespoň čtyři dny v roce. Pokud je první pondělí v roce 2. , 3. nebo 4. den, jsou předchozí dny součástí posledního týdne předchozího roku. Pro tyto dny %V se nahrazuje číslem 53 a obě %g%G a jsou nahrazeny číslicemi předchozího roku.

Poznámka

Při použití jedné z strftime funkcí s ukazatelem vráceným tm z gmtime, hodnoty vytištěné přes %Z a %z specifikátory nebudou přesné. Důvodem je to, že tm struktura zadaná standardem C neobsahuje informace pro název časového pásma ani posun. Místo toho se informace o časovém pásmu naplní globálními proměnnými _timezone a _dstbias.

Požadavky

Rutina Požadovaný hlavičkový soubor
strftime <time.h>
wcsftime <time.h> nebo <wchar.h>
_strftime_l <time.h>
_wcsftime_l <time.h> nebo <wchar.h>

Funkce _strftime_l a _wcsftime_l funkce jsou specifické pro Microsoft. Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Podívejte se na příklad pro time.

Viz také

Národní prostředí
Správa času
Manipulace s řetězci
localeconv
setlocale, _wsetlocale
strcoll – funkce
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l