Fonction de bibliothèque C - strftime ()

La description

La fonction de bibliothèque C size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) met en forme l'heure représentée dans la structure timeptr selon les règles de mise en forme définies dans format et stocké dans str.

Déclaration

Voici la déclaration de la fonction strftime ().

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

Paramètres

  • str - Il s'agit du pointeur vers le tableau de destination où la chaîne C résultante est copiée.

  • maxsize - Il s'agit du nombre maximum de caractères à copier dans str.

  • format- Il s'agit de la chaîne C contenant toute combinaison de caractères normaux et de spécificateurs de format spéciaux. Ces spécificateurs de format sont remplacés par la fonction aux valeurs correspondantes pour représenter l'heure spécifiée dans tm. Les spécificateurs de format sont -

Prescripteur Remplacé par Exemple
%une Nom abrégé du jour de la semaine Soleil
%UNE Nom complet du jour de la semaine dimanche
% b Nom du mois abrégé Mar
% B Nom complet du mois Mars
% c Représentation de la date et de l'heure Dim 19 août 02:56:02 2012
%ré Jour du mois (01-31) 19
% H Heure au format 24h (00-23) 14
%JE Heure au format 12h (01-12) 05
% j Jour de l'année (001-366) 231
% m Mois sous forme de nombre décimal (01-12) 08
% M Minute (00-59) 55
% p Désignation AM ou PM PM
% S Deuxième (00-61) 02
% U Numéro de semaine avec le premier dimanche comme premier jour de la première semaine (00-53) 33
% w Jour de la semaine sous forme de nombre décimal avec dimanche comme 0 (0-6) 4
% W Numéro de la semaine avec le premier lundi comme premier jour de la première semaine (00-53) 34
%X Représentation de la date 19/08/12
%X Représentation du temps 02:50:06
% y Année, deux derniers chiffres (00-99) 01
% Y An 2012
% Z Nom ou abréviation du fuseau horaire CDT
%% Un panneau %
  • timeptr - Ceci est le pointeur vers une structure tm qui contient une heure calendaire décomposée en ses composants comme indiqué ci-dessous -

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             */	
};

Valeur de retour

Si la chaîne C résultante tient dans moins de caractères de taille (qui inclut le caractère nul de fin), le nombre total de caractères copiés dans str (sans inclure le caractère nul de fin) est renvoyé sinon, il renvoie zéro.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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);
}

Compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

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