#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, или нуль при возникновении ошибки.
Таблица 1    
Код Замещается
Сокращенное название дня недели
Полное название дня недели
%bСокращенное название месяца
%BПолное название месяца
%cСтандартная строка даты и времени
%CДве последние цифры года
%dДень месяца в виде десятичного числа (1-31)
%DДата в виде месяц/день/год (добавлено в версии С9Э)
%eДень месяца в виде десятичного числа (1-31) в двух-символьном поле (добавлено в С99)
%FДата в виде "год-месяц-день" (добавлено в С99)
%gПоследние две цифры года с использованием понедельного года (добавлено в С99)
%GГод с использованием понедельного года (добавлено в С99)
%hСокращенное название месяца (добавлено в С99)
Час (0-23)
%jЧас (1-12)
%JДень года в виде десятичного числа (1-366)
%mМесяц в виде десятичного числа (1 -12)
%MМинуты в виде десятичного числа (0-59)
%nРазделитель строк (добавлено в С99)
%pМестный эквивалент AM (до полудня) или РМ (после полудня)
%r12-часовое время (добавлено в С99)
%RВремя в виде чч:мм (добавлено в С99)
%SСекунды в виде десятичного числа (0-60)
%TГоризонтальная табуляция (добавлено в С99)
%TВремя в виде чч:мм:сс (добавлено в С99)
%uДень недели; понедельник— первый день недели (0-6) (добавлено в С99)
%UНеделя года; воскресенье — первый день недели (0-53)
%vНеделя года с использованием понедельного года (добавлено в С99)
%wДень недели в виде десятичного числа (0-6, воскресенье — 0-й день)
%WНеделя года; понедельник — первый день недели (0-53)
%xСтандартная строка даты
%XСтандартная строка времени
%yГод в виде десятичного числа без столетия (0-99)
%YГод в виде десятичного числа, включающего столетие
%zСдвиг относительно координированного всемирного (UTC) времени (добавлено в С99)
%ZНазвание часового пояса
%%Знак процента


Версия С99 позволяет использовать в функции strftime() определенные команды форматирования с модификаторами Е и O. Модификатор Е может модифицировать такие команды, как с, С, х, X, у, Y, d, e и Н. Модификатор O может модифицировать команды: I, m, м, s, u, U, V, w, W и у. Использование этих модификаторов приводит к альтернативному представлению отображаемого времени и/или даты. Подробности можно узнать в документации, поставляемой вместе с используемым вами компилятором.
Понедельный год используется командами форматирования %g, %G и %V. При таком представлении первым днем недели является понедельник, а первая неделя года должна включать день с датой "4 января".
Пример 1
Предположим, что ltime указывает на структуру, которая содержит 10:00:00 AM. Следующая программа печатает: "Сейчас 10 AM.":
#include  <time.h>
#include  <stdio.h>
int main(void)
{
struct   tm  *ptr;
time_t   lt;
char  str[80];
lt = time (NULL);
ptr = localtime(&lt);
strftime(str, 100, "Сейчас: %H %p.", ptr);      printf (str) ;
printf(str);
return 0;
}
Здесь используются зависимые функции time(), localtime(), gmtime().