Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       strptime - Conversion d'une chaine de date en une structure tm

SYNOPSIS

       #define _XOPEN_SOURCE /* Pour glibc2 */
       #include <time.h>

       char *strptime(const char *buf, const char *format, struct tm *tm);

DESCRIPTION

       La  fonction  strptime() est complementaire de la fonction strftime(3).
       Elle convertit la chaine de caracteres pointee par buf  en  une  valeur
       qui  est  stockee  dans  la  structure tm pointee par l'argument tm, la
       conversion etant realisee en suivant les indications contenues dans  la
       chaine format. Cette derniere contient des descripteurs de champs et du
       texte, rappelant scanf(3). Chaque descripteur consiste en un  caractere
       %  suivi  d'un  second caractere indiquant le champ a interpreter. Tous
       les autres sont consideres comme du texte, qui doit etre  present  dans
       la chaine fournie en entree. Toutefois un espace blanc se trouvant dans
       la chaine de format peut  etre  mis  en  correspondance  avec  zero  ou
       plusieurs  espaces.  Il  devrait toujours y avoir un espace ou un autre
       caractere alphanumerique entre deux descripteurs de champs.

       La fonction strptime() traite la chaine d'entree de  gauche  a  droite.
       Les  trois  types  d'elements  d'entree  possibles  (espace,  caractere
       litteral, conversion) sont manipules l'un apres l'autre. Si l'entree ne
       peut  pas  etre  mise  en  correspondance  avec la chaine de format, la
       fonction s'arrete. Le reste du format et de la chaine d'entree ne  sont
       pas traites.

       Les descripteurs applicables sont decrits ci-dessous. Dans le cas d'une
       chaine de caracteres (comme un nom de jour ou de mois), la  comparaison
       ne tient pas compte des majuscules/minuscules. Dans le cas d'un nombre,
       les zeros au debut sont autorises mais pas obligatoires.

       %%     Le caractere %

       %a ou %A
              Le jour de la semaine en utilisant les noms correspondants a  la
              localisation. Les noms abreges ou entiers peuvent etre utilises.

       %b ou %B ou %h
              Le  mois en utilisant les noms correspondants a la localisation.
              Les noms abreges ou entiers peuvent etre utilises.

       %c     La date et l'heure en utilisant le format de la localisation.

       %C     Le numero de siecle (0-99).

       %d ou %e
              Le jour du mois (1-31)

       %D     La date, ainsi : %m/%d/%y. C'est la date  au  format  americain,
              tres  genante  pour  les  autres  pays,  notamment  l'Europe qui
              utilise une notation %d/%m/%y. Le format standard ISO  8601  est
              %Y-%m-%d.

       %H     L'heure (0-23)

       %I     L'heure (0-12)

       %j     Le numero du jour dans l'annee (001-366)

       %m     Le numero du mois (1-12)

       %M     La minute (0-59)

       %n     Un espace blanc quelconque

       %p     Equivalent local de AM ou PM (eventuellement rien).

       %r     L'heure  sur 12 heures avec l'equivalent local de AM ou PM. Dans
              la localisation POSIX, equivalent a %I:%M:%S  %p.  Si  le  champ
              t_fmt_ampm  de la categorie LC_TIME de la localisation est vide,
              le comportement est indefini.

       %R     Equivalent de %H:%M.

       %S     Les secondes (0-61, des secondes de rattrapages sont autorisees)

       %t     Un espace blanc quelconque

       %T     Equivalent de %H:%M:%S.

       %U     Le numero de semaine (0-53),  le  premier  dimanche  de  janvier
              etant le premier jour de la semaine 1.

       %w     Le  numero  du  jour  dans  la  semaine  (0-6), en commencant le
              dimanche.

       %W     Le numero de semaine (0-53), le premier lundi de  janvier  etant
              le premier jour de la semaine 1.

       %x     la date, en utilisant le format usuel de la localisation.

       %X     l'heure, en utilisant le format usuel de la localisation.

       %y     l'annee  sans le siecle (0-99; les zeros au debut sont autorises
              mais pas obligatoires). Lorsque le siecle n'est pas indique  par
              une  autre conversion, les annees 69 a 99 sont considerees comme
              etant du vingtieme siecle (1969 a 1999), et les annees 00-68  du
              vingt-et-unieme siecle (2000-2068).

       %Y     L'annee en incluant le siecle (par exemple, 1996)

       Certains   descripteurs  peuvent  etre  completes  par  les  caracteres
       modificateurs E et O, indiquant qu'il faut employer un autre format  ou
       une autre specification. Si cet autre format, ou cette autre conversion
       n'est pas disponible dans la  localisation  en  cours,  le  descripteur
       n'est pas modifie.

       Le  modificateur  E  indique  que  la chaine d'entree peut contenir des
       versions  differentes  de  la  date  et  l'heure,  en  fonction  de  la
       localisation :

       %Ec    Une representation differente de la date et l'heure.

       %EC    Le  nom  de  l'annee  de  base  (periode) dans la representation
              locale alternative.

       %Ex    Une autre representation de la date.

       %EX    Une autre representation de l'heure.

       %Ey    Le decalage (en  annee)  par  rapport  a  l'annee  %EC  dans  la
              representation locale alternative.

       %EY    La representation complete de l'annee.

       Le  modificateur  O  indique  que  les  saisies numeriques peuvent etre
       effectuees dans un format different, dependant de la localisation.

       %Od or %Oe
              Le jour du  mois.  Les  zeros  en  tete  sont  permis  mais  pas
              obligatoires.

       %OH    L'heure (sur 24 heures).

       %OI    L'heure (sur 12 heures).

       %Om    Le numero du mois.

       %OM    Les minutes.

       %OS    Les secondes.

       %OU    Le numero de la semaine.

       %Ow    Numero du jour dans la semaine, le dimanche etant zero.

       %OW    Le numero du jour de la semaine, en commencant le lundi.

       %Oy    L'annee (ou decalage par rapport a %C) en utilisant les symboles
              numerique regiaunaux.

       Les champs de la structure tm definie dans <time.h> sont :

           struct tm
           {
               int tm_sec;        /* secondes           */
               int tm_min;        /* minutes            */
               int tm_hour;       /* heures             */
               int tm_mday;       /* jour du mois       */
               int tm_mon;        /* mois               */
               int tm_year;       /* annee              */
               int tm_wday;       /* jour de la semaine */
               int tm_yday;       /* jour de l'annee    */
               int tm_isdst;      /* decalage ete/hiver */
           };

VALEUR RENVOY'EE

       La fonction strptime() renvoie un pointeur sur le premier caractere  de
       la  chaine  buf  n'ayant  pas  ete  traite. Dans le cas ou la chaine de
       saisie est plus longue que ce que reclame le format, la valeur renvoyee
       pointe  juste apres le dernier caractere d'entree ayant ete analyse. Si
       toute la chaine a ete traitee, le pointeur est dirige sur le  caractere
       NUL en fin de chaine. Si strptime() n'arrive pas a effectuer toutes les
       conversions, il renvoie NULL.

CONFORMIT'E

       SUSv2, POSIX.1-2001.

NOTES

       En principe cette fonction n'initialise pas tm, mais n'y stocke que les
       valeurs  lues.  Ceci signifie que le contenu de tm doit etre initialise
       avant  l'appel.  Les  details  different  suivant  les  systemes  Unix.
       L'implementation de la bibliotheque C Gnu ne modifie pas les champs non
       mentionnes explicitement, sauf tm_wday, et tm_yday qui sont  recalcules
       si un champ d'annee, de mois ou de jour est modifie.

       Cette  fonction  n'est disponible que dans les versions de bibliotheque
       depuis la 4.6.8. Les bibliotheques  Linux  libc4  et  libc5  incluaient
       toujours  le  prototype  de  cette fonction, la bibliotheque glibc 2 ne
       fournit le prototype que si les constantes _XOPEN_SOURCE ou _GNU_SOURCE
       sont definies.

       Avant  la  libc  5.4.13,  les  espaces  (et  les conversions << n >> et
       << t >>) n'etaient pas geres ; les caracteres de modification locale  E
       et  O  n'etaient  pas  acceptes ;  et la specification << C >> etait un
       synonyme pour << c >>.

       La conversion << y >> (annee dans le siecle)  est  toujours  consideree
       comme appartenant au vingtieme siecle dans les libc4 et libc5. Elle est
       prise dans l'intervalle 1950-2049 par la glibc 2.0, et 1969-2068 par la
       glibc 2.1.

   Notes sur la glibc
       Pour  des raisons de symetrie, la glibc essaye d'offrir pour strptime()
       les memes caracteres de formatage que  ceux  de  strftime(3)  (dans  la
       plupart  des  cas,  les  champs  sont lus mais aucun membre de tm n'est
       modifie). Ceci conduit a :

       %F     Equivalent a %Y-%m-%d, le format ISO 8601 pour la date.

       %g     L'annee correspondant au numero de semaine ISO, sans  le  siecle
              (0-99).

       %G     L'annee  correspondant  au  numero  de  semaine ISO (par exemple
              1991).

       %u     Le numero du jour de la semaine (1-7, lundi valant 1).

       %V     Le numero  de  semaine  ISO  8601:1988  (1-53).  Si  la  semaine
              (commencant  lundi)  contenant  le 1er janvier a quatre jours ou
              plus de la nouvelle annee, elle est comptee en semaine 1.  Sinon
              elle   est   consideree   comme   derniere  semaine  de  l'annee
              precedente, et c'est la suivante qui est la semaine 1.

       %z     Specification standard RFC-822/ISO 8601 pour le fuseau horaire.

       %Z     Le nom du fuseau horaire.

       De meme, a cause des extensions GNU de strftime(3), %k est  accepte  en
       synonyme  de  %H,  et  %l  est  accepte  comme synonyme de %I, et %P en
       synonyme de %p. Enfin,

       %s     Le  nombre  de  secondes  depuis  l'epoque,   1er janvier   1970
              a 00:00:00  (UTC).  Les  secondes  de  rattrapage  ne  sont  pas
              comptees, sauf si un support specifique est disponible.

       L'implementation de la glibc n'impose pas  la  presence  de  caracteres
       blancs entre deux descripteurs de champs.

EXEMPLE

       L'exemple suivant montre l'utilisation de strptime() et strftime(3).

       #define _XOPEN_SOURCE
       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>
       #include <time.h>

       int
       main(void)
       {
           struct tm tm;
           char buf[255];

           memset(&tm, 0, sizeof(struct tm));
           strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm);
           strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
           puts(buf);
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       time(2),     getdate(3),     scanf(3),    setlocale(3),    strftime(3),
       feature_test_macros(7)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Nicolas
       Francois et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

GNU                             5 decembre 2009                    STRPTIME(3)