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|