Функция strftime

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

Пример работы программы

CppStudio.com
Сейчас 07:37PM.
Автор: admin
Дата: 30.08.2012
Поделиться:

Комментарии

  1. A-Soft

    %S — диапазон 0-59

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.