strftime()

#include <time.h>
size_t strftime(char *str, size_t maxsize,
		const char *fmt, const struct tm *time);

Описание

Помещает информацию о времени и дате(вместе с другой информацией) в строку

Функция strftime() помещает информацию о времени и дате(вместе с другой информацией) в строку, адресуемую параметром str, в соответствии с командами форматирования, которые содержатся в адресуемой параметром fmt строке, и используя поэлементно заданное время time. В строку str будет помещено максимум maxsize символов.

В версии С99 к параметрам str, fmt и time применен ква-лификатор restrict.

Работа функции strftime() напоминает работу функции sprintf() в том, что она распознает набор команд форматирования, которые начинаются со знака процента(%), и помещает отформатированный результат в строку. Команды форматирования используются для задания точного способа представления различных данных времени и даты в параметре str. Любые другие символы, содержащиеся в строке форматирования, помещаются в строку str без изменений. Значения времени и даты отображаются в виде локального времени. Команды форматирования перечислены в следующей таблице. Обратите внимание на то, что во многих командах прописные и строчные буквы имеют различную интерпретацию.

Функция strftime() возвращает количество символов, которые сохранены в строке, адресуемой параметром str, или нуль при возникновении ошибки.

Команда Результат форматирования
Сокращенное название дня недели
Полное название дня недели
%b Сокращенное название месяца
Полное название месяца
Стандартная строка даты и времени
Последние две цифры года
%d День месяца в виде десятичного числа(1-31)
%D Дата в виде месяц/день/год(добавлено в версии С99)
День месяца как десятичное число(1-31) в 2-символьном поле(добавлено в версии С99)
%F Дата в виде год-месяц-день(добавлено в версии С99)
%g Последние две цифры года с использованием понедельного года(добавлено в версии С99)
%G Год с использованием понедельного года (добавлено в версии С99)
%h Сокращенное название месяца(добавлено в версии С99)
%H Часы(0-23)
%I Часы(1-12)
%j День года в виде десятичного числа(1-366)
%m Месяц в виде десятичного числа(1-12)
%M Минуты в виде десятичного числа(0-59)
%n Новая строка(добавлено в версии С99)
%p Эквивалент индикатора A.M. или P.M. для местного времени
%r 12-часовое время(добавлено в версии С99)
%R Время в виде чч:мм(добавлено в версии С99)
%S Секунды в виде десятичного числа(0-60)
%t Горизонтальная табуляция(добавлено в версии С99)
%T Время в виде чч:мм:сс(добавлено в версии С99)
%u День недели; понедельник — первый день недели(1-7)(добавлено в версии С99)
%U Неделя года; воскресенье — первый день недели(0-53)
%V еделя года с использованием понедельного года(добавлено в версии С99)
%w День недели в виде десятичного числа(0-6, воскресенье — 0-й день)
%W Неделя года; понедельник — первый день недели(0-53)
%x Стандартная строка даты
%X Стандартная строка времени
%y Год в виде десятичного числа без столетия(0-99)
%Y Год в виде десятичного числа, включающего столетие
%z Смещение относительно UTC(добавлено в версии С99)
%Z Название часового пояса
%% Знак процента

Понедельный год используется командами форматирования %g, %G и %v. При таком представлении первым днем недели является понедельник, а первая неделя года должна включать день с датой "4 января".