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, mierzona w znakach (char lub wchart_t).format
Ciąg formatu formantu.timeptr
tmstrukturadanych.locale
ustawienia regionalne , aby użyć.
Wartość zwracana
strftimeZwraca liczbę znaków, umieszczone w strDest i wcsftime zwraca odpowiedni numer szerokości znaków.
Jeśli całkowita liczba znaków, w tym zakończeń null, 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 literałowych w format jak również wszystkie znaki, które mogą być dodawane do format za pośrednictwem kody formatowania.Zakończeń null ciąg nie jest liczony w wartości zwracanej.
Uwagi
strftime i wcsftime funkcji format tm wartość czasu w timeptr do dostarczony format argument i przechowywać wynik w buforze strDest*.* Co najbardziej maxsize znaki są umieszczane w ciągu.Opis pól w timeptr struktura, zobacz asctime. wcsftimejest to równoważne szerokich znaków strftime; wskaźnik- ciągargument wskazuje na łańcuch szerokich znaków. Te funkcje działają identycznie inaczej.
[!UWAGA]
W wersjach przed Visual C++ 2005, dokumentację opisaną format parametr wcsftime jako posiadające typ danychconst wchar_t *, ale faktycznej realizacji format typ danych został const char *. Wykonania format typ danych został zaktualizowany w celu odzwierciedlenia poprzedniego i bieżącego dokumentacji, oznacza to, że const wchar_t *.
Ta funkcja sprawdza poprawność jego parametry.Jeśli strDest, format, lubtimeptr jest pusty wskaźniklub jeśli tm danych struktura skierowane przez timeptr jest nieprawidłowy (na przykład, jeśli zawiera ona z zakresu wartości dla daty lub godziny), lub jeśli format ciąg zawiera nieprawidłowy kod formatujący, obsługi nieprawidłowyparametr jest wywoływany, jak opisano w Sprawdzanie poprawności parametru. Jeśli wykonanie jest dozwolone, aby kontynuować, funkcja zwraca 0 i zestawy errno do EINVAL.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
format argument składa się z jednego lub większej liczby kodów; Podobnie jak w printf, kody formatowania są poprzedzone znakiem procentu (%).Znaki, które nie rozpoczyna się od % są kopiowane bez zmian do strDest*.*LC_TIME Kategorii bieżące ustawienia regionalne wpływa na formatowanie danych wyjściowych z strftime.(Aby uzyskać więcej informacji na LC_TIME, zobacz setlocale.) Funkcje bez _l sufiks używać aktualnie ustawionych ustawienia regionalne.Wersje te funkcje, z _l sufiks są identyczne, z wyjątkiem, że podjąć ustawienia regionalne jako parametr i używać go zamiennie z aktualnie ustawioną ustawienia regionalne.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Formatowanie kodów dla strftime są wymienione poniżej:
%a
Nazwa dnia tygodnia w skrócie%A
Pełna nazwa dnia tygodnia%b
Skrócona nazwa miesiąca%B
Pełna nazwa miesiąca%c
Reprezentacja daty i czasu odpowiednia dla ustawienia regionalne%d
Dzień miesiąca w postaci liczby liczba dziesiętna (01 – 31)%H
Godzinę w formacie 24-godzinnym (00 – 23)%I
Godzinę w formacie 12-godzinnym (01 – 12)%j
Dzień roku jako liczbę liczba dziesiętna (001-366)%m
Miesiąca w postaci liczby liczba dziesiętna (01 – 12)%M
Minuty jako liczba liczba dziesiętna (00 – 59)%p
Bieżące ustawienia regionalnena ustaloną.wskaźnik na zegarze 12-godzinnym%S
Drugi jako liczba liczba dziesiętna (00 – 59)%U
Tydzień roku jako liczbę liczba dziesiętna z niedzieli jako pierwszy dzień tygodnia (00 – 53)%w
Dzień tygodnia, jako liczba liczba dziesiętna (0-6; Niedziela jest 0)%W
Tydzień roku jako liczbę liczba dziesiętna z poniedziałku jako pierwszy dzień tygodnia (00 – 53)%x
Reprezentacja daty dla bieżącego ustawienia regionalne%X
Reprezentacja czasu dla bieżącego ustawienia regionalne%y
Rok bez stulecia, jako liczba liczba dziesiętna (00 – 99)%Y
Rok z wieku, jako liczba liczba dziesiętna%z, %Z
Nazwastrefa czasu - albo czas skrót strefa , w zależności od ustawień rejestru; Brak znaków Jeśli czas strefa jest nieznany%%
Znak procentu
Podobnie jak w printf funkcja # oflagować może prefiks formatowania kodu. W takim rozumieniu kod formatu jest zmieniana w następujący sposób.
Kod formatu |
Znaczenie |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
# oflagować jest ignorowana. |
%#c |
Długo reprezentacja daty i czasu, odpowiednie dla bieżącego ustawienia regionalne.Na przykład: "Wtorek, 14 marca 1995, 12: 41: 29". |
%#x |
Reprezentacja daty długiej właściwe bieżące ustawienia regionalne.Na przykład: "Wtorek, 14 marca 1995". |
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y |
Usuń zer (jeśli ma zastosowanie). |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówek |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> lub <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> lub <wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
Zobacz przykład dla czasu.