Funkcja strftime () w C ++ konwertuje podaną datę i godzinę z podanego czasu kalendarzowego na wielobajtowy ciąg znaków zakończony znakiem null zgodnie z ciągiem formatu.
Funkcja strftime () jest zdefiniowana w pliku nagłówkowym.
strftime () prototyp
size_t strftime (char * str, size_t count, const char * format, const tm * czas);
Funkcja strftime () przyjmuje 4 argumenty: str, licznik, format i czas.
Informacje o dacie i godzinie wskazywane przez czas są konwertowane na znak wielobajtowy zakończony znakiem null na podstawie wartości formatu i są przechowywane w tablicy wskazywanej przez str. Zapisywane są co najwyżej count bajtów.
strftime () Parametry
- str: wskaźnik do pierwszego elementu tablicy znaków, w którym ma zostać zapisany wynik.
- count: maksymalna liczba bajtów do zapisania.
- format: Wskaźnik do wielobajtowego ciągu znaków zakończonego znakiem null, określającego format konwersji. Ciąg formatu składa się ze specyfikatora konwersji (zaczynającego się od% i opcjonalnie po nim E lub O) oraz innych zwykłych znaków.
Zwykłe znaki, w tym kończący znak null, są kopiowane tak samo, jak do ciągu wyjściowego. Specyfikatory formatu strftime ()Specyfikator konwersji Opis Używane pola % Zapisuje znak% n Zapisuje znak nowego wiersza t Zapisuje znak tabulacji poziomej Rok Y Zapisuje 4 cyfry roku, np. 2011 tm_year EY Zapisuje 4 cyfry roku w alternatywnej reprezentacji ustawień regionalnych tm_year y Zapisuje ostatnie 2 cyfry roku, zakres (00, 99) tm_year Oy Zapisuje ostatnie 2 cyfry roku w alternatywnej reprezentacji ustawień regionalnych tm_year Ey Zapisuje rok jako przesunięcie względem alternatywnego okresu kalendarzowego% EC (zależne od ustawień regionalnych) tm_year do Zapisuje pierwsze 2 cyfry roku, zakres (00,99) tm_year WE Zapisuje nazwę roku bazowego (okresu) w alternatywnej reprezentacji ustawień regionalnych, tm_year sol Zapisuje rok oparty na tygodniach ISO 8601, tj. Rok zawierający określony tydzień. tm_year, tm_wday, tm_yday sol Zapisuje ostatnie 2 cyfry roku opartego na tygodniu ISO 8601, tj. Roku zawierającego określony tydzień (zakres (00,99)). tm_year, tm_wday, tm_yday Miesiąc b Zapisuje skróconą nazwę miesiąca, np. Jan tm_mon godz To samo co b tm_mon b Zapisuje pełną nazwę miesiąca, np. Styczeń tm_mon m Zapisuje miesiąc jako liczbę dziesiętną, zakres (01,12) tm_mon Om Zapisuje miesiąc przy użyciu alternatywnego systemu numerycznego dla ustawień regionalnych tm_mon Tydzień U Zapisuje tydzień roku jako liczbę dziesiętną od 00 do 53 (niedziela jest pierwszym dniem tygodnia) tm_year, tm_wday, tm_yday OU Zapisuje tydzień roku jako% U przy użyciu alternatywnego systemu liczbowego tm_year, tm_wday, tm_yday W. Zapisuje tydzień roku jako liczbę dziesiętną od 00 do 53 (poniedziałek jest pierwszym dniem tygodnia) tm_year, tm_wday, tm_yday OW Zapisuje tydzień roku jako% W przy użyciu alternatywnego systemu liczbowego tm_year, tm_wday, tm_yday V Zapisuje tydzień roku według ISO 8601 (zakres (01,53)). tm_year, tm_wday, tm_yday OV Zapisuje tydzień roku, jak w% V, używając alternatywnego systemu numerycznego tm_year, tm_wday, tm_yday Dzień roku / miesiąc jot Zapisuje dzień roku jako liczbę dziesiętną, zakres (001,366) tm_yday re Zapisuje dzień miesiąca jako liczbę dziesiętną, zakres (01,31) tm_mday Od Zapisuje dzień miesiąca jako% d, używając alternatywnego systemu liczbowego tm_mday mi Zapisuje dzień miesiąca jako liczbę dziesiętną, zakres (1,31) tm_mday Oe Zapisuje dzień miesiąca jako% e, używając alternatywnego systemu liczbowego tm_mday Dzień tygodnia za Zapisuje skróconą nazwę dnia tygodnia, np. Pt (zależne od ustawień regionalnych) tm_wday ZA Zapisuje pełną nazwę dnia tygodnia, np. Piątek (zależne od ustawień regionalnych) tm_wday w Zapisuje dzień tygodnia jako liczbę dziesiętną, zakres (0-6) (niedziela to 0) tm_wday Ow Zapisuje dzień tygodnia jako% w, używając alternatywnego systemu liczbowego tm_wday u Zapisuje dzień tygodnia jako liczbę dziesiętną, gdzie poniedziałek to 1 (format ISO 8601), zakres (1-7) tm_wday Ou Zapisuje dzień tygodnia jako% u, używając alternatywnego systemu liczbowego tm_wday Godzina, minuta, sekunda H. Zapisuje godzinę jako liczbę dziesiętną, zakres (00,23) tm_hour O Zapisuje godzinę jako% H, używając alternatywnego systemu liczbowego tm_hour ja Zapisuje godzinę jako liczbę dziesiętną, zakres (01,12) tm_hour OI Zapisuje godzinę jako% I, używając alternatywnego systemu liczbowego tm_hour M Zapisuje minuty jako liczbę dziesiętną, zakres (00,59) tm_min OM Zapisuje minuty jako% M, używając alternatywnego systemu liczbowego tm_min S Zapisuje sekundę jako liczbę dziesiętną, zakres (00,60) tm_sec OS Zapisuje sekundę jako% S, używając alternatywnego systemu liczbowego tm_sec Inny do Zapisuje standardowy ciąg daty i godziny, np. Sun Oct 17 04:41:13 2010 (zależne od ustawień regionalnych) wszystko Ec Zapisuje alternatywny ciąg daty i godziny dla ustawień regionalnych wszystko x Zapisuje zlokalizowane przedstawienie daty (zależne od ustawień regionalnych) wszystko Dawny Zapisuje alternatywną reprezentację daty dla lokalizacji wszystko X Zapisuje zlokalizowaną reprezentację czasu (zależną od ustawień regionalnych) wszystko DAWNY Zapisuje alternatywną reprezentację czasu w lokalizacji wszystko re Odpowiednik „% m /% d /% y” tm_mon, tm_mday, tm_year fa Odpowiednik „% Y-% m-% d” tm_mon, tm_mday, tm_year r Zapisuje zlokalizowany 12-godzinny zegar tm_hour, tm_min, tm_sec R Odpowiednik „% H:% M” tm_hour, tm_min T Odpowiednik „% H:% M:% S tm_hour, tm_min, tm_sec P. Zapisuje zlokalizowane rano lub po południu (zależne od ustawień regionalnych) tm_hour z zapisuje przesunięcie od UTC w formacie ISO 8601 (np. -0545) lub bez znaków, jeśli informacja o strefie czasowej nie jest dostępna tm_isdst Z Zapisuje nazwę lub skrót strefy czasowej lub nic, jeśli informacje o strefie czasowej nie są dostępne (zależne od ustawień regionalnych) tm_isdst - czas: informacje o dacie i godzinie do konwersji.
strftime () Zwracana wartość
- Po pomyślnym zakończeniu funkcja strftime () zwraca liczbę bajtów zapisanych w tablicy znaków wskazywanej przez ciąg, nie uwzględniając kończącego znaku „ 0”.
- Jeśli liczba została osiągnięta, zanim można było zapisać cały ciąg, zwracane jest 0, a zawartość jest niezdefiniowana.
Przykład: Jak działa funkcja strftime ()?
#include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; char date_string(100); char time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); strftime(date_string, 50, "Today is %B %d, %Y", curr_tm); strftime(time_string, 50, "Current time is %T", curr_tm); cout << date_string << endl; cout << time_string << endl; return 0; )
Po uruchomieniu programu wynik będzie następujący:
Dzisiaj jest 21 kwietnia 2017. Bieżąca godzina to 11:20:42