Função de biblioteca C - strftime ()

Descrição

A função da biblioteca C size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) formata a hora representada na estrutura timeptr de acordo com as regras de formatação definidas em format e armazenado em str.

Declaração

A seguir está a declaração da função strftime ().

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

Parâmetros

  • str - Este é o ponteiro para a matriz de destino onde a string C resultante é copiada.

  • maxsize - Este é o número máximo de caracteres a serem copiados para str.

  • format- Esta é a string C que contém qualquer combinação de caracteres regulares e especificadores de formato especial. Esses especificadores de formato são substituídos pela função para os valores correspondentes para representar a hora especificada em tm. Os especificadores de formato são -

Especificador Substituído por Exemplo
%uma Nome abreviado do dia da semana Sol
%UMA Nome completo do dia da semana Domigo
% b Nome abreviado do mês Mar
% B Nome completo do mês Março
% c Representação de data e hora Dom 19 de agosto 02:56:02 2012
% d Dia do mês (01-31) 19
% H Hora no formato 24h (00-23) 14
%EU Hora no formato de 12h (01-12) 05
% j Dia do ano (001-366) 231
% m Mês como um número decimal (01-12) 08
% M Minuto (00-59) 55
% p Designação AM ou PM PM
% S Segundo (00-61) 02
%VOCÊ Número da semana com o primeiro domingo como o primeiro dia da semana um (00-53) 33
%W Dia da semana como um número decimal com domingo como 0 (0-6) 4
%W Número da semana com a primeira segunda-feira como o primeiro dia da semana um (00-53) 34
% x Representação de data 19/08/12
% X Representação de tempo 02:50:06
% y Ano, últimos dois dígitos (00-99) 01
% Y Ano 2012
% Z Nome ou abreviatura do fuso horário CDT
%% Um sinal %
  • timeptr - Este é o ponteiro para uma estrutura tm que contém um tempo de calendário dividido em seus componentes, conforme mostrado abaixo -

struct tm {
   int tm_sec;         /* seconds,  range 0 to 59          */
   int tm_min;         /* minutes, range 0 to 59           */
   int tm_hour;        /* hours, range 0 to 23             */
   int tm_mday;        /* day of the month, range 1 to 31  */
   int tm_mon;         /* month, range 0 to 11             */
   int tm_year;        /* The number of years since 1900   */
   int tm_wday;        /* day of the week, range 0 to 6    */
   int tm_yday;        /* day in the year, range 0 to 365  */
   int tm_isdst;       /* daylight saving time             */	
};

Valor de retorno

Se a string C resultante couber em caracteres menores que o tamanho (o que inclui o caractere nulo de terminação), o número total de caracteres copiados para str (não incluindo o caractere nulo de terminação) é retornado, caso contrário, ele retorna zero.

Exemplo

O exemplo a seguir mostra o uso da função 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,"%x - %I:%M%p", info);
   printf("Formatted date & time : |%s|\n", buffer );
  
   return(0);
}

Vamos compilar e executar o programa acima que produzirá o seguinte resultado -

Formatted date & time : |08/23/12 - 12:40AM|