Función de biblioteca C - strftime ()

Descripción

La función de la biblioteca C size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) Formatea el tiempo representado en la estructura. timeptr de acuerdo con las reglas de formato definidas en format y almacenado en str.

Declaración

A continuación se muestra la declaración de la función strftime ().

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

Parámetros

  • str - Este es el puntero a la matriz de destino donde se copia la cadena C resultante.

  • maxsize - Este es el número máximo de caracteres que se copiarán en str.

  • format- Esta es la cadena C que contiene cualquier combinación de caracteres regulares y especificadores de formato especial. Estos especificadores de formato son reemplazados por la función a los valores correspondientes para representar el tiempo especificado en tm. Los especificadores de formato son:

Especificador Reemplazado por Ejemplo
%un Nombre abreviado del día de la semana Dom
%UN Nombre completo del día de la semana domingo
%segundo Nombre del mes abreviado mar
%SEGUNDO Nombre del mes completo marzo
%C Representación de fecha y hora Dom 19 de agosto 02:56:02 2012
%re Día del mes (01-31) 19
% H Hora en formato 24h (00-23) 14
%YO Hora en formato de 12h (01-12) 05
% j Día del año (001-366) 231
%metro Mes como número decimal (01-12) 08
%METRO Minuto (00-59) 55
%pags Designación AM o PM PM
% S Segundo (00-61) 02
% U Número de semana con el primer domingo como primer día de la semana uno (00-53) 33
% w Día de la semana como número decimal con domingo como 0 (0-6) 4
% W Número de semana con el primer lunes como primer día de la semana uno (00-53) 34
%X Representación de fecha 19/08/12
%X Representación del tiempo 02:50:06
% y Año, dos últimos dígitos (00-99) 01
% Y Año 2012
% Z Nombre o abreviatura de la zona horaria CDT
%% Una señal %
  • timeptr - Este es el puntero a una estructura tm que contiene un calendario desglosado en sus componentes como se muestra a continuación -

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 devuelto

Si la cadena C resultante encaja en caracteres de tamaño menor (que incluye el carácter nulo de terminación), el número total de caracteres copiados en str (sin incluir el carácter nulo de terminación) se devuelve; de ​​lo contrario, devuelve cero.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:

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