Sdílet prostřednictvím


strftime, wcsftime, _strftime_l, _wcsftime_l

Formátovací řetězec čas.

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
    Velikost strDest vyrovnávací paměti, měřeno ve znacích (char nebo wchart_t).

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

  • timeptr
    tmDatová struktura.

  • locale
    Použité národní prostředí.

Vrácená hodnota

strftimeVrátí počet znaků, které jsou umístěny v strDest a wcsftime vrací číslo odpovídající široké znaky.

Celkový počet znaků, včetně ukončující null, je-li více než maxsize, i strftime a wcsftime vrácení 0 a obsah strDest jsou neurčité.

Počet znaků v strDest je roven počtu literálními znaky ve format a všechny znaky, které mohou být přidány do format přes formátovací kódy.Ukončující null řetězce není započten do návratové hodnoty.

Poznámky

strftime a wcsftime funkce formát tm , když hodnota v timeptr podle zadaného format argumentu a výsledek ve vyrovnávací paměti úložiště strDest*.* Nanejvýš maxsize znaky jsou umístěny v řetězci.Popis polí v timeptr struktury naleznete v tématu asctime.wcsftimeširokého znaku odpovídá strftime; ukazatel na řetězec argument odkazuje řetězec širokého znaku.Tyto funkce se chovají jinak identicky.

[!POZNÁMKA]

V verze před Visual C++ 2005 popsány v dokumentaci format parametr wcsftime jako typ dat s const wchar_t *, ale skutečného provedení format datový typ byl const char *.Provedení format datový typ byl aktualizován tak, aby odrážely aktuální a předchozí dokumentaci, který je const wchar_t *.

Tato funkce ověřuje své parametry.Pokud strDest, format, nebo timeptr je nulový ukazatel, nebo pokud tm datová struktura používala timeptr je neplatný (například pokud obsahuje hodnoty mimo rozsah pro čas nebo datum), nebo pokud format řetězec obsahuje neplatný kód formátování, je vyvolána neplatný parametr obslužné rutiny, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, funkce vrátí hodnotu 0 a nastaví errno na EINVAL.

Rutinní mapování obecného textu

Rutina TCHAR.H

_UNICODE & _MBCS není definováno

_MBCS definováno

_UNICODE definováno

_tcsftime

strftime

strftime

wcsftime

format Argument se skládá z jednoho nebo více kódů; jako v printf, formátovací kódy předchází znak procent (%).Znaky, které nemají na začátku % zkopírovány nezměněny do strDest*.*LC_TIME Kategorie aktuální národní prostředí ovlivňuje formátování výstupu z strftime. (Další informace o LC_TIME, viz setlocale.) Funkce bez _l použít příponu aktuálně nastavené národní prostředí.Verze těchto funkcí se _l přípony jsou stejné s tím rozdílem, že přijmout národní prostředí jako parametr a použít místo aktuálně nastavené národní prostředí.Další informace naleznete v tématu Národní prostředí.

Formátování kódů pro strftime jsou uvedeny níže:

  • %a
    Zkrácený název dne

  • %A
    Úplný název dne

  • %b
    Zkrácený název měsíce

  • %B
    Úplný název měsíce

  • %c
    Vyjádření data a času odpovídající národní prostředí

  • %d
    Den v měsíci jako desítkové číslo (01-31)

  • %H
    Hodina ve 24hodinovém formátu (00-23)

  • %I
    Hodiny ve 12hodinovém formátu (01-12)

  • %j
    Den v roce jako desítkové číslo (001-366)

  • %m
    Měsíc jako desítkové číslo (01-12)

  • %M
    Minuta jako desítkové číslo (00-59)

  • %p
    12hodinovém aktuální národní prostředí. Indikátor pro 12 hodin

  • %S
    Druhý jako desítkové číslo (00-59)

  • %U
    Týden roku jako číslo v desítkové soustavě, přičemž neděle je považována první den týdne (00-53)

  • %w
    Den v týdnu jako desítkové číslo (0 – 6; Neděle je 0)

  • %W
    Týden roku pondělí jako první den v týdnu jako desítkové číslo (00-53)

  • %x
    Reprezentace data pro aktuální národní prostředí

  • %X
    Vyjádření času pro aktuální národní prostředí

  • %y
    Rok bez století vyjádřený jako číslo v desítkové soustavě (00-99)

  • %Y
    Rok s století vyjádřený jako číslo v desítkové soustavě

  • %z, %Z
    Název časového pásma nebo zkratku časové pásmo, v závislosti na nastavení registru. žádné znaky, pokud časové pásmo není znám

  • %%
    Znak procenta

Jako v printf funkce, # příznak může před všechny formátovací kód.Význam kódu formátu v takovém případě se změní následujícím způsobem.

Formátování kódu

Význam

%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%

#Příznak je ignorována.

%#c

Dlouhé datum a čas, reprezentace, vhodné pro aktuální národní prostředí.Příklad: "Úterý, 14 březen 1995, 12:41:29".

%#x

Dlouhé datum reprezentace, vhodné pro aktuální národní prostředí.Příklad: "Úterý, 14, dne".

%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y

Odebrání úvodní nuly (pokud existuje).

Požadavky

Rutina

Požadované záhlaví

strftime

<time.h>

wcsftime

<Time.h> nebo <wchar.h>

_strftime_l

<time.h>

_wcsftime_l

<Time.h> nebo <wchar.h>

Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.

Příklad

Naleznete v příkladu pro čas.

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

Národní prostředí

Správa času

Zacházení s řetězci (CRT)

localeconv

setlocale, _wsetlocale

strcoll – funkce

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l