Прототип функции strftime:
size_t strftime( char * stringptr, size_t maxnum, const char * strformat, const struct tm * timeptr );
Заголовочный файл
Название | Язык |
---|---|
time.h | С |
ctime | С++ |
Описание
Из структуры tm
извлекаются необходимые значения даты и времени и помещаются в строку strformat
, где и подвергаются форматированию с помощью спецификаторов формата. Предварительно отформатированное содержимое строки strformat
копируется в строку stringptr
, размер копируемой строки ограничивается по количеству символов в параметре maxnum
.
Параметры:
- stringptr
Указатель на массив назначения, где в результате будет храниться скопированная Си-строка. - maxnum
Максимальное количество символов для копирования вstringptr
. - strformat
Cи-строка, содержащая любую комбинацию из обычных символов и специальных спецификаторов формата. Эти спецификаторы формата заменяются на соответствующие значения даты и времени, указанных вtimeptr
. Все спецификаторы начинаются с процента%
. Список спецификаторов формата показан ниже, в таблице:
Спецификатор | Описание | Пример |
---|---|---|
%a | Сокращённое название дня недели * | Thu |
%A | Полное название дня недели * | Thursday |
%b | Сокращённое название месяца * | Aug |
%B | Полное название месяца * | August |
%c | Представление даты и времени * | Thu Aug 30 14:08:30 2012 |
%d | День месяца (1 — 31) | 30 |
%H | Представление часов в 24-х часовом формате | 15 |
%I | Представление часов в 12-ти часовом формате | 03 |
%j | День в году (001-365) | 215 |
%m | Номер месяца (01-12) | 08 |
%M | Минуты (00-59) | 14 |
%p | Обозначение AM(после полуночи и до обеда) или PM(после обеда и до полуночи) | PM |
%S | Секунды (00-61) | 12 |
%U | Номер недели, первый день недели — воскресенье (0 — 53) | 15 |
%w | Номер дня недели, начиная с воскресенья (0 — 6) | 4 |
%W | Номер недели, первый день недели — понедельник (0 — 53) | 20 |
%x | Представление даты * | 08/30/12 |
%X | представление времени * | 14:35:08 |
%y | Год, последние две цифры | 12 |
%Y | Год, полная запись | 2012 |
%Z | Название или аббревиатура временной зоны | GMT |
%% | Символ процента | % |
Спецификаторы формата обозначенные звёздочкой, являются локально зависимыми.
- timeptr
Указатель на структуруtm
, которая содержит календарное время.
Возвращаемое значение
Если размер копируемой Cи-строки меньше или равен значению в maxnum
, включая завершающий нулевой символ, то функция вернет общее количество копируемых символов (не учитывая завершающий нуль-символ). В противном случае возвращается ноль и содержимое строки не определено.
Пример: исходный код программы
//пример использования функции strftime #include <iostream> #include <ctime> int main() { time_t rawtime; struct tm * timeinfo; char buffer [80]; // строка, в которой будет храниться текущее время time ( &rawtime ); // текущая дата в секундах timeinfo = localtime ( &rawtime ); // текущее локальное время, представленное в структуре strftime (buffer,80,"Сейчас %I:%M%p.",timeinfo); // форматируем строку времени std::cout << buffer << std::endl; return 0; }
Комментарии
A-Soft
%S — диапазон 0-59