Прототип функции 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