strftime, wcsftime, _strftime_l, _wcsftime_l
Format ciągu czasu.
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
Ciąg wyjściowy.maxsize
Rozmiar strDest buforu, mierzone w znakach (char lub wchart_t).format
Ciąg formantu formatu.timeptr
tmStruktura danych.locale
Ustawienia regionalne do użycia.
Wartość zwracana
strftimeZwraca liczbę znaków w strDest i wcsftime zwraca odpowiedni numer szerokości znaków.
Jeśli całkowita liczba znaków, w tym wartości null zakończeń, jest więcej niż maxsize, zarówno strftime i wcsftime zwraca 0 i zawartość strDest są nieokreślone.
Liczba znaków w strDest jest równa liczbie znaków literalnych w format jak również wszystkie znaki, które mogą być dodawane do format za pośrednictwem kody formatowania.Zakończenie null ciąg nie jest liczona w wartości zwracanej.
Uwagi
strftime i wcsftime funkcje formatu tm czas wartość w timeptr według podanej format argument i przechowywać wynik w buforze strDest*.* Co najwyżej maxsize znaki są umieszczane w ciągu.Opis pola w timeptr struktury, zobacz asctime.wcsftimejest odpowiednikiem znaku wide strftime; argument ciągu wskaźnik wskazuje ciąg znaków wide.W innych przypadkach funkcje te zachowują się identycznie.
[!UWAGA]
W wersjach przed Visual C++ 2005, dokumentację opisaną format parametr wcsftime jako typ danych o const wchar_t *, ale faktycznej realizacji format typ danych został const char *.Wykonania format typ danych został zaktualizowany w celu odzwierciedlenia w poprzednim i bieżącym dokumentacji, czyli const wchar_t *.
Ta funkcja sprawdza poprawność swoich parametrów.Jeśli strDest, format, lub timeptr jest pusty wskaźnik, lub jeśli tm struktury danych kierowane przez timeptr jest nieprawidłowy (na przykład, jeśli zawiera ona wartości spoza zakresu dla daty lub godziny), lub jeśli format ciąg zawiera nieprawidłowy kod formatujący, obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, funkcja zwraca 0 i ustawia errno jako EINVAL.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
format Argument składa się z jednego lub więcej kodów; Podobnie jak w printf, kody formatowania są poprzedzone znakiem procentu (%).Znaki, które nie zaczynają się od % są kopiowane bez zmian do strDest*.*LC_TIME Kategorii bieżących ustawień regionalnych ma wpływ na formatowanie danych wyjściowych z strftime. (Aby uzyskać więcej informacji na temat LC_TIME, zobacz setlocale.) Funkcje bez _l sufiks używać aktualnie ustawione ustawienia regionalne.Wersje te funkcje za pomocą _l sufiks są identyczne, chyba że biorą ustawień regionalnych jako parametr i używać zamiast aktualnie ustawione ustawienia regionalne.Aby uzyskać więcej informacji, zobacz Regionalne.
Formatowanie kodów dla strftime są wymienione poniżej:
%a
Skrótowa nazwa dnia tygodnia%A
Pełna nazwa dnia tygodnia%b
Skrócona nazwa miesiąca%B
Pełna nazwa miesiąca%c
Reprezentacja daty i czasu, odpowiednie dla ustawień regionalnych%d
Dzień miesiąca w postaci liczby dziesiętnej (01 – 31)%H
Godzina w formacie 24-godzinnym (00-23)%I
Godziny w formacie 12-godzinnym (01 – 12)%j
Dzień roku jako liczbę dziesiętną (001-366)%m
Miesiąca w postaci liczby dziesiętnej (01 – 12)%M
Minuty jako liczba dziesiętna (00-59)%p
Bieżące ustawienia regionalne godzinę. wskaźnik zegar 12-godzinny%S
Drugi jako liczba dziesiętna (00-59)%U
Tydzień roku jako liczby dziesiętnej, niedziela jako pierwszy dzień tygodnia (00-53)%w
Dzień tygodnia, jako liczba dziesiętna (0 – 6; Niedziela jest 0)%W
Tydzień roku jako liczby dziesiętnej, poniedziałek jako pierwszy dzień tygodnia (00-53)%x
Reprezentacja daty dla bieżących ustawień regionalnych%X
Reprezentacja godziny dla bieżących ustawień regionalnych%y
Rok bez stulecia, jako liczba dziesiętna (00-99)%Y
Rok z wiekiem, jako liczba dziesiętna%z, %Z
Nazwa strefy czasowej lub skrót nazwy strefy czasowej, w zależności od ustawień rejestru; Brak znaków jeśli strefa czasowa jest nieznana%%
Znak procentu
Podobnie jak w printf funkcji, # Flaga może prefiks formatowania kodu.W takim przypadku znaczenia kodu formatu zostanie zmieniona w następujący sposób.
Kod formatu |
Znaczenie |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
#Flaga jest ignorowana. |
%#c |
Długo reprezentacja daty i czasu, odpowiednie dla bieżących ustawień regionalnych.Na przykład: "Wtorek, 14 marca 1995, 12:41:29". |
%#x |
Reprezentacja daty długiej, właściwe jest bieżące ustawienia regionalne.Na przykład: "Wtorek, 14 marca 1995". |
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y |
Usunięcie zer wiodących (jeśli istnieje). |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
strftime |
<czas.h> |
wcsftime |
<Time.h> lub <wchar.h> |
_strftime_l |
<czas.h> |
_wcsftime_l |
<Time.h> lub <wchar.h> |
Dodatkowe informacje o zgodności – zobacz: Zgodność we Wprowadzeniu.
Przykład
Zobacz przykład dla czas.