strftime – перевод даты и времени в текстовую строку заданного формата.
Синтаксис:
#include < time.h >
size_t strftime (char *str, size_t maxsize, const char *str_form, const struct tm * t_time);
Аргументы:
str – указатель на строку в которую будет помещен результат преобразования.
maxsize – длина строки, на которую указывает аргумент str.
str_form – формат преобразования даты и времени.
t_time – структура, содержащая дату и время для преобразования
Возвращаемое значение:
Если дата и время успешно преобразованы и длинна полученной строки не превышает maxsize, то функция возвращает длину полученной строки, иначе возвращается 0, при этом содержимое строки, на которую указывает аргумент str будет неопределенно.
Описание:
Функция strftime () преобразует локальное (местное) время, представленное в виде структуры типа struct tm, на которую указывает аргумент m_time, в текстовую строку.
Выходная текстовая строка формируется в соответствии с форматом, на который указывает аргумент str_form. В конце строки помещается нулевой символ (признак конца строки).
Строка, содержащая формат преобразования, может содержать как обычные символы, так и спецификаторы (аналогично формату функции printf, но с другими спецификаторами). Обычные символы копируются в выходную строку без изменения, спецификаторы заменяются на соответствующие данные из структуры, на которую указывает аргумент t_time.
При преобразовании используются следующие спецификаторы:
%a - сокращенное название дня недели (например, Sun).
%A - полное название дня недели (например, Sunday).
%b - сокращенное название месяца (например, Dec).
%B - полное название месяца (например, December).
%c - дата и время (например, Dec 2 06:55:15 1979).
%d - день месяца (например, 02).
%H - час в 24-часовом диапазоне (например, 06).
%I - час в 12-часовом диапазоне (например, 06).
%j - день года начиная с 001 (например, 335).
%m - месяц начиная с 01 (например, 12).
%M - минуты (например, 55).
%p - AM/PM индикатор, AM - означает до полудня, PM - после полудня (например, AM).
%S - секунды (например, 15).
%U - номер недели (с воскресенья до понедельника) в году, начиная с 00 (например, 48).
%w - номер дня недели, воскресенью соответствует 0 (например, 6).
%W - номер недели (с понедельника до воскресенья) в году, начиная с 00 (например, 47).
%x - дата (например, Dec 2 1979).
%X - время (например, 06:55:15).
%y - последние две цифры года (например, 79).
%Y - год (например, 1979).
%Z - часовой пояс (например, EST).
%% - символ процента %.
Структура tm содержит элементы:
int tm_sec – секунды (отсчет с 0);
int tm_min – минуты (отсчет с 0);
int tm_hour - часы (отсчет с 0);
int tm_mday - день месяца (отсчет с 1);
int tm_mon - месяц (отсчет с 0);
int tm_year – год;
int tm_wday - день недели (воскресенье - 0);
int tm_yday - день в году (отсчет с 0);
int tm_isdst - признак "летнее время" (больше нуля если «летнее время», ноль если «зимнее время», меньше нуля если нет информации.
Пример:
В примере в консоль выводятся дата, день недели, время, часовой пояс полученные с помощью функции strftime.
#include < stdio.h > // Для printf
#include < time.h > // Для time, localtime, strftime
int main (void)
{
//Переменная для системного времени
long int s_time;
//Указатель на структуру с локальным временем
struct tm *m_time;
//Строка для сохранения преобразованного времени
char str_t[128]=””;
//Считываем системное время
s_time = time (NULL);
//Преобразуем системное время в локальное
m_time = localtime (&s_time);
//Преобразуем локальное время в текстовую строку
strftime (str_t, 128, ”Дата: %x %A %X %Z”, m_time);
//Выводим строку в консоль
printf (“%s\n”,str_t);
return 0;
}
| |
Результат:
Дата: 05/25/14 Sunday 03:34:25 MSK
|
Смотри так же:
asctime,
asctime_r,
clock_getres,
clock_gettime,
clock_gettime,
ctime,
ctime_r,
difftime,
gmtime,
gmtime_r,
localtime,
localtime_r,
mktime,
strftime,
time
|