Provided by: manpages-fr_1.67.0-1_all bug

NOM

       strftime - Formater la date et l’heure.

SYNOPSIS

       #include <time.h>

       size_t strftime (char *s, size_t max, const char *format,
                           const struct tm *tm);

DESCRIPTION

       La  fonction strftime() formate les divers champs de la structure tm en
       fonction de la chaîne de spécification format, puis place  le  résultat
       dans la chaîne s de taille max.

       Les  caractères  ordinaires  présents  dans  la  chaîne  format  seront
       simplement copiés dans s. Les indicateurs de conversion sont introduits
       par le caractère ‘%’ et sont remplacés, dans la chaîne s ainsi :

       %a     Le  nom  abrégé  du  jour  de  la  semaine,  en  fonction  de la
              localisation en cours.

       %A     Le nom complet  du  jour  de  la  semaine,  en  fonction  de  la
              localisation en cours.

       %b     Le  nom abrégé du mois, en fonction de la localisation en cours.

       %B     Le nom complet du mois, en fonction de la localisation en cours.

       %c     La représentation classique de la date et de l’heure, suivant la
              localisation en cours.

       %C     Le siècle (année / 100) sous forme de nombre de  deux  chiffres.
              (SU)

       %d     Le  quantième  du mois sous forme de nombre décimal (entre 01 et
              31).

       %D     Equivalent à  %m/%d/%y.  Seulement  pour  les  américains.   Ces
              derniers  doivent  noter que les autres pays préfèrent le format
              %d/%m/%y. Dans un contexte international ce format est ambigu et
              doit être évité. (SU)

       %e     Comme  %d,  le  quantième  du  mois  sous  forme  décimal,  mais
              l’éventuel zéro en tête est remplacé par un espace. (SU)

       %E     Modificateur : Utiliser un format de rechange.  Voir  plus  bas.
              (SU)

       %F     Équivalent de %Y-%m-%d (Format de date ISO 8601). (C99)

       %G     L’année  ISO  8601  avec le siècle comme nombre décimal. L’année
              sur quatre chiffres correspond au numéro de la semaine ISO (voir
              %V).   C’est  le  même  format  que %y, sauf que si le numéro de
              semaine appartient  à  l’année  suivante  ou  précédente,  c’est
              celle-ci qui est affichée à la place. (TZ)

       %g     Comme  %G  sans  le siècle, c’est à dire avec une année sur deux
              chiffres (00-99). (TZ)

       %h     Equivalent à %b. (SU)

       %H     L’heure, sur 24 heures, sous forme de nombre décimal  (entre  00
              et 23).

       %I     L’heure,  sur  12 heures, sous forme de nombre décimal (entre 01
              et 12).

       %j     Le numéro du jour dans l’année (entre 001 et 366).

       %k     L’heure (sur 24 heures) sous forme de nombre décimal (intervalle
              0  à  23).   Les chiffres uniques sont précédés d’un blanc (voir
              aussi %H). (TZ).

       %l     L’heure   (sur  12  heures)  sous  forme   de   nombre   décimal
              (intervalle  1  à  12).  Les chiffres uniques sont précédés d’un
              blanc (voir aussi %I). (TZ).

       %m     Le numéro du mois (entre 01 et 12).

       %M     La minute, sous forme de nombre décimal (00 à 59).

       %n     Un caractère saut-de-ligne. (SU)

       %O     Modificateur : Utiliser un format de rechange.  Voir  plus  bas.
              (SU)

       %p     L’une  des  deux chaînes ‘AM’ ou ‘PM’ en fonction de l’heure, ou
              la traduction de ces chaînes en fonctions de la localisation  en
              cours.  Midi est traité comme ‘PM’ et Minuit comme ‘AM’.

       %P     Comme  %p  mais  en minuscule: ‘am’ ou ‘pm’ ou une chaîne locale
              équivalente. (GNU)

       %r     L’heure en notation a.m. ou p.m.  Dans  la  localisation  POSIX,
              c’est équivalent à ‘%I:%M:%S %p’. (SU)

       %R     L’heure  en  format  24  heures  (%H:%M).  (SU).  Pour avoir les
              secondes voir %T.

       %s     Le nombre de secondes écoulées depuis  le  1er  Janvier  1970  à
              00:00:00 UTC. (TZ).

       %S     La seconde, sous forme de nombre décimal. (00-61)

       %t     Un caractère Tab. (SU)

       %T     L’heure en notation 24 heures (%H:%M:%S). (SU)

       %u     Le  jour  de  la  semaine  sous forme décimal, de 1 (Lundi) à 7.
              Voir aussi %w. (SU)

       %U     Le numéro de la semaine  dans  l’année,  sous  forme  de  nombre
              décimal  (00-53),  en commençant le comptage au premier Dimanche
              de l’année. Voir aussi %V et %W.

       %V     Le numéro de semaine ISO 8601:1988  de  l’année  en  cours  sous
              forme de nombre décimal dans l’intervalle 01-53, où la semaine 1
              est la première ayant au moins 4 jours dans l’année en cours, et
              où Lundi est le premier jour de la semaine. Voir aussi %U et %W.
              (SU)

       %W     Le numéro de la semaine  dans  l’année,  sous  forme  de  nombre
              décimal  (00-53),  en commençant le comptage au premier Lundi de
              l’année.

       %w     Le numéro du jour de la  semaine,  sous  forme  décimale  (0-6),
              Dimanche valant 0. Voir aussi %u.

       %x     La  représentation  usuelle  de  la  date, sans l’heure, dans la
              localisation en cours.

       %X     La représentation usuelle de l’heure,  sans  la  date,  dans  la
              localisation en cours.

       %y     L’année,  sous forme de nombre décimal, sans le siècle (entre 00
              et 99).

       %Y     L’année, sous forme de nombre décimal, incluant le siècle.

       %z     Le fuseau horaire sous forme de décalage  GMT.  Nécessaire  pour
              crééer  des  dates  conformes  à  la RFC 822 (avec "%a, %d %b %Y
              %H:%M:%S %z"). (GNU)

       %Z     Le nom ou l’abréviation du fuseau horaire.

       %+     La date et l’heure au format date(1). (TZ)

       %%     Un caractère ‘%’.

       Certains indicateurs de conversion peuvent être modifiés en les faisant
       préceder  par  le  modificateur  E  ou  O  pour  indiquer  un format de
       rechange.  Si le format de rechange n’existe pas pour  la  localisation
       en  cours,  le  comportement  ne  sera pas modifié.  Les Spécifications
       Single Unix mentionnent  %Ec, %EC, %Ex, %EX, %Ry, %EY, %Od,  %Oe,  %OH,
       %OI,  %Om,  %OM,  %OS,  %Ou,  %OU,  %OV,  %Ow, %OW, %Oy, où l’action du
       modificateur O est d’utiliser un autre format  numérique  (par  exemple
       des   chiffres   romains),   et   l’action  de  E  est  d’utiliser  une
       représentaiton dépendant de la localisation.

       Les champs de la structure tm sont définis dans <time.h>.   Voir  aussi
       ctime(3).

VALEUR RENVOYÉE

       La  fonction  strftime() renvoie le nombre de caractères écrits dans la
       table s, sans compter le caractère NUL final. Si la chaîne  était  trop
       courte,  strftime() renvoie 0, et le contenu de la chaîne est indéfini.
       (Ceci, du moins, depuis la libc 4.4.4, des versions plus  anciennes  de
       la  libc,  comme  la  4.4.1,  renvoyaient  max  si la chaîne était trop
       courte)

       Remarquez qu’une valeur de retour  nulle  n’indique  pas  toujours  une
       erreur.   Dans de nombreuses localisations, par exemple, %p renvoie une
       chaîne vide.

ENVIRONNEMENT

       Les variables d’environnement TZ et LC_TIME sont utilisées.

CONFORMITÉ

       ANSI C, SVID 3, ISO 9899.  Il y a une inclusion stricte entre les  jeux
       de  conversions  fournies  par ANSI (sans marque), celles indiquées par
       les Spécifications Single Unix (marquées SU), celles  fournies  par  le
       paquet  TimeZone d’Olson (marquées TZ), et celles de la glibc (marquées
       GNU), sauf pour %+ qui n’est pas supporté par glibc2. D’un  autre  côté
       glibc2   offre   plusieurs  extensions.   POSIX.1  ne  traite  que  les
       conversions ANSI C.  POSIX.2  décrit  à  propos  de  date(1)  plusieurs
       extensions applicables également à strftime.  La conversion %F est dans
       C99 et POSIX 1003.1-2001.

BUGS

       Certaines versions boguées de gcc se plaignent de l’utilisation de %c :
       warning:  %c  yields  only  last  2  digits  of year in some locales.
       (Attention : ne donne que les deux derniers chiffres  de  l’année  dans
       certaines localisations).  Bien sûr, les programmeurs sont encouragés à
       utiliser %c, cela donne la représentation préférée de date et  d’heure.
       Il  y  a  eu des tas d’astuces bizarres pour éviter ce problème de gcc.
       Une relativement propre est d’utiliser une fonction intermédiaire :
              size_t my_strftime(char *s, size_t max, const char  *fmt,  const
              struct tm *tm) {
                      return strftime(s, max, fmt, tm);
              }

VOIR AUSSI

       date(1), time(2), ctime(3), setlocale(3), sprintf(3), strptime(3)

TRADUCTION

       Christophe Blaess, 1996-2003.