Функция библиотеки C -strftime()

Стандартная библиотека C - <time.h>

Описание

Функции библиотеки Csize_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)Согласноformatправилам форматирования и структуре форматирования, определённым вtimeptrпредставленное время и сохранить его вstrВ.

Объявление

Ниже приведено объявление функции strftime().

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

Параметр

  • str-- это указатель на массив назначения, используемый для копирования результирующей C-строки.
  • maxsize-- это максимальное количество символов, которое должно быть скопировано в str.
  • format-- Это C-строка, содержащая любую комбинацию обычных символов и специальных спецификаторов формата. Эти спецификаторы формата заменяются функцией на значения, представляющие время, указанное в tm. Спецификаторы формата:
СпецификаторЗаменяется наПример
%aСокращенное название дня неделиВс
%AПолное название дня неделиSunday
%bСокращенное название месяцаМар
%BПолное название месяцаМарт
%cПредставление даты и времениВс Авг 19 02:56:02 2012
%dДень месяца (01-31)19
%HЧас в 24-часовом формате (00-23)14
%IЧас в 12-часовом формате (01-12)05
%jДень года (001-366)231
%mМесяц в виде десятичного числа (01-12)08
%MМинута (00-59)55
%pНазвание AM или PMPM
%SСекунда (00-61)02
%UНеделя года, при этом первое воскресенье считается первым днем первой недели (00-53)33
%wДень недели в виде десятичного числа, воскресенье представлено как 0 (0-6)4
%WНеделя года, при этом первый понедельник считается первым днем первой недели (00-53)34
%xПредставление даты08/19/12
%XПредставление времени02:50:06
%yГод, последние две цифры (00-99)01
%YГод2012
%ZНазвание или аббревиатура часового поясаCDT
%%Знак %%
  • timeptr-- Это указатель на структуру tm, которая содержит календарное время, разбитое на следующие части:
struct tm {
   int tm_sec;         /* 秒,范围从 0 到 59                */
   int tm_min;         /* 分,范围从 0 到 59                */
   int tm_hour;        /* 小时,范围从 0 到 23                */
   int tm_mday;        /* 一月中的第几天,范围从 1 到 31                    */
   int tm_mon;         /* 月份,范围从 0 到 11                */
   int tm_year;        /* 自 1900 起的年数                */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */
   int tm_isdst;       /* 夏令时                        */    
};

Возвращаемое значение

Если результирующая C-строка содержит меньше size символов (включая завершающий нулевой символ), возвращается общее количество символов, скопированных в str (исключая завершающий нулевой символ); в противном случае возвращается ноль.

Пример

В следующем примере демонстрируется использование функции strftime().

Пример

#include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm *info; char buffer[80]; time( &rawtime ); info = localtime( &rawtime ); strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", info); printf("Форматированная дата и время : |%s|\n", buffer ); return(0); }

Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:

格式化的日期 & 时间 : |2018-09-19 08:59:07|

Стандартная библиотека C - <time.h>

Другие расширения