Функцията strftime () в C ++ преобразува дадената дата и час от дадено време от календарно време в многобайтни символни низове, завършващи с нула, според низ от формат.
Функцията strftime () е дефинирана в заглавния файл.
strftime () прототип
size_t strftime (char * str, count_t count, const char * формат, const tm * време);
Функцията strftime () отнема 4 аргумента: str, count, format и time.
Информацията за датата и часа, посочена от времето, се преобразува в многобайтен символ с нула, завършваща въз основа на стойността на формата и се съхранява в масива, посочен от str. Записват се най-много байтове за преброяване.
strftime () Параметри
- str: указател към първия елемент от масива от знаци за съхраняване на резултата.
- count: Максимален брой байтове за запис.
- формат: указател на многобайтни символни низове с край до нула, указващ формата на преобразуване. Форматният низ се състои от спецификатор за преобразуване (започващ с% и по желание последван от E или O) и други обикновени символи.
Обикновените символи, включително завършващия нулев знак, се копират, както е в изходния низ. спецификатори на формат strftime ()Спецификатор за преобразуване Описание Използвани полета % Записва знака% н Пише символ на нов ред т Пише знак за хоризонтален таб Година Y. Записва 4 цифри на годината, например 2011 tm_year EY Записва 4 цифри на година в алтернативно представяне на локала tm_year у Записва последните 2 цифри от годината, диапазон (00, 99) tm_year О, Записва последните 2 цифри от годината в алтернативно представяне на локала tm_year Ей Записва годината като отклонение от алтернативния календарен период% EC (зависи от локала) tm_year ° С Пише първите 2 цифри от годината, диапазон (00,99) tm_year ЕО Записва име на базовата година (период) в алтернативното представяне на локала, tm_year G Пише ISO 8601 седмична година, т.е. годината, която съдържа посочената седмица. tm_year, tm_wday, tm_yday ж Записва последните 2 цифри от годината, базирана на ISO 8601, т.е. годината, която съдържа посочената седмица (диапазон (00,99)). tm_year, tm_wday, tm_yday Месец б Пише съкратено име на месец, например Jan tm_mon з Същото като b tm_mon Б. Пише пълното име на месеца, например януари tm_mon м Записва месеца като десетично число, диапазон (01,12) tm_mon Ом Записва месец, използвайки алтернативната числова система на локала tm_mon Седмица U Записва седмицата в годината като десетично число от 00 до 53 (неделя е първият ден от седмицата) tm_year, tm_wday, tm_yday OU Записва седмицата в годината като% U, използвайки алтернативната цифрова система tm_year, tm_wday, tm_yday W Записва седмицата в годината като десетично число от 00 до 53 (понеделник е първият ден от седмицата) tm_year, tm_wday, tm_yday OW Записва седмицата в годината като% W, използвайки алтернативната цифрова система tm_year, tm_wday, tm_yday V Пише ISO 8601 седмица в годината (диапазон (01,53)). tm_year, tm_wday, tm_yday OV Записва седмица в годината като% V, използвайки алтернативната цифрова система tm_year, tm_wday, tm_yday Ден от годината / месеца j Записва деня от годината като десетично число, диапазон (001,366) tm_yday д Записва деня от месеца като десетично число, диапазон (01,31) tm_mday Од Записва ден от месеца като% d, използвайки алтернативната цифрова система tm_mday д Записва деня от месеца като десетично число, диапазон (1,31) tm_mday Oe Записва ден от месеца като% e, използвайки алтернативната цифрова система tm_mday Ден от седмицата а Пише съкратено име на делничния ден, например петък (в зависимост от локала) tm_wday A Пише пълното име на делничния ден, например петък (в зависимост от локала) tm_wday w Записва делничния ден като десетично число, диапазон (0-6) (неделя е 0) tm_wday Ооо Пише делничния ден като% w, използвайки алтернативната цифрова система tm_wday u Записва делничния ден като десетично число, където понеделник е 1 (формат ISO 8601), диапазон (1-7) tm_wday Оу Пише делничния ден като% u, използвайки алтернативната цифрова система tm_wday Час, минута, секунда З. Записва час като десетично число, диапазон (00,23) tm_hour ОХ Записва час като от% H, използвайки алтернативната цифрова система tm_hour Аз Записва час като десетично число, диапазон (01,12) tm_hour OI Записва час като от% I, използвайки алтернативната цифрова система tm_hour М Записва минута като десетично число, диапазон (00,59) tm_min ОМ Записва минута като% M, използвайки алтернативната цифрова система tm_min С Пише второ като десетично число, диапазон (00,60) tm_sec операционна система Пише второ като% S, използвайки алтернативната цифрова система tm_sec Други ° С Writes standard date and time string, e.g. Sun Oct 17 04:41:13 2010 (locale dependent) all Ec Writes locale's alternative date and time string all x Writes localized date representation (locale dependent) all Ex Writes locale's alternative date representation all X Writes localized time representation (locale dependent) all EX Writes locale's alternative time representation all D Equivalent to "%m/%d/%y" tm_mon, tm_mday, tm_year F Equivalent to "%Y-%m-%d" tm_mon, tm_mday, tm_year r Writes localized 12-hour clock time tm_hour, tm_min, tm_sec R Equivalent to "%H:%M" tm_hour, tm_min T Equivalent to "%H:%M:%S tm_hour, tm_min, tm_sec P Writes localized a.m. or p.m. (locale dependent) tm_hour z writes offset from UTC in the ISO 8601 format (e.g. -0545), or no characters if the time zone information is not available tm_isdst Z Записва име или съкращение на часовата зона или нищо, ако информацията за часовата зона не е налична (в зависимост от локала) tm_isdst - time: Датата и часът за преобразуване.
strftime () Върната стойност
- При успех функцията strftime () връща броя на байтовете, записани в символния масив, посочен от str, без да включва завършващото ' 0'.
- Ако броят е достигнат, преди да може да се съхрани целият низ, се връща 0 и съдържанието е недефинирано.
Пример: Как работи функцията 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; )
Когато стартирате програмата, изходът ще бъде:
Днес е 21 април 2017 г. Текущото време е 11:20:42