Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       strptime - Conversion d'une chaîne de date en une structure tm

SYNOPSIS

       #define _XOPEN_SOURCE /* Consultez feature_test_macros(7) */
       #include <time.h>

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

DESCRIPTION

       La  fonction  strptime()  est complémentaire de la fonction strftime(3). Elle convertit la
       chaîne de caractères pointée par buf en une valeur qui est stockée dans  la  structure  tm
       pointée  par  l'argument  tm,  la  conversion  étant  réalisée  en suivant les indications
       contenues dans la chaîne format.

       Les champs de la structure tm définie dans <time.h> sont :

           struct tm
           {
               int tm_sec;    /* secondes [0,60]                          */
               int tm_min;    /* minutes [0,59]                           */
               int tm_hour;   /* heures [0,23]                            */
               int tm_mday;   /* jour du mois [1,31]                      */
               int tm_mon;    /* mois [0,11]                              */
               int tm_year;   /* année - 1900                             */
               int tm_wday;   /* jour de la semaine [0,6] où Dimanche = 0 */
               int tm_yday;   /* jour de l'année [0,365] où 1er Jan = 0   */
               int tm_isdst;  /* décalage été/hiver                       */
           };

       Pour plus de détails sur la structure tm, consultez ctime(3).

       Le paramètre format contient des descripteurs de champs et du texte,  rappelant  scanf(3).
       Chaque  descripteur  consiste  en  un caractère % suivi d'un second caractère indiquant le
       champ à interpréter. Tous les autres sont considérés comme du texte, qui doit être présent
       dans  la chaîne fournie en entrée. Toutefois un espace blanc se trouvant dans la chaîne de
       format peut être mis en correspondance avec zéro ou plusieurs espaces. Il devrait toujours
       y avoir un espace ou un autre caractère alphanumérique entre deux descripteurs de champs.

       La  fonction  strptime()  traite  la  chaîne  d'entrée de gauche à droite. Les trois types
       d'éléments d'entrée possibles (espace, caractère littéral, conversion) sont manipulés l'un
       après  l'autre.  Si  l'entrée  ne  peut  pas être mise en correspondance avec la chaîne de
       format, la fonction s'arrête. Le reste du format et de la  chaîne  d'entrée  ne  sont  pas
       traités.

       Les  descripteurs  applicables  sont  décrits  ci-dessous.  Dans  le  cas  d'une chaîne de
       caractères (comme le nom d’un jour de la semaine ou d’un mois), la  comparaison  ne  tient
       pas  compte  des  majuscules/minuscules.  Dans le cas d'un nombre, les zéros au début sont
       autorisés mais pas obligatoires.

       %%     Le caractère %

       %a ou %A
              Le jour de la semaine en utilisant les noms correspondants à la  localisation.  Les
              noms abrégés ou entiers peuvent être utilisés.

       %b ou %B ou %h
              Le mois en utilisant les noms correspondants à la localisation. Les noms abrégés ou
              entiers peuvent être utilisés.

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

       %C     Le numéro de siècle (0-99).

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

       %D     La date, ainsi : %m/%d/%y. C'est la date au format américain, très gênante 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 numéro du jour dans l'année (001-366)

       %m     Le numéro du mois (1-12)

       %M     La minute (0-59)

       %n     Un espace blanc quelconque

       %p     Équivalent local de AM ou PM (éventuellement rien).

       %r     L'heure sur 12 heures avec l'équivalent local de AM ou  PM.  Dans  la  localisation
              POSIX,  équivalent à %I:%M:%S %p. Si le champ t_fmt_ampm de la catégorie LC_TIME de
              la localisation est vide, le comportement est indéfini.

       %R     Équivalent de %H:%M.

       %S     Les secondes (0-61, des secondes de rattrapages sont autorisées)

       %t     Un espace blanc quelconque

       %T     Équivalent de %H:%M:%S.

       %U     Le numéro de semaine (0-53), le premier dimanche de janvier étant le  premier  jour
              de la semaine 1.

       %w     Le numéro du jour dans la semaine (0-6), en commençant le dimanche.

       %W     Le  numéro  de semaine (0-53), le premier lundi de janvier étant 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'année sans  le  siècle  (0-99;  les  zéros  au  début  sont  autorisés  mais  pas
              obligatoires).  Lorsque  le  siècle n'est pas indiqué par une autre conversion, les
              années 69 à 99 sont considérées comme étant du vingtième siècle (1969 à  1999),  et
              les années 00-68 du vingt-et-unième siècle (2000-2068).

       %Y     L'année en incluant le siècle (par exemple, 1996)

       Certains  descripteurs  peuvent  être  complétés  par les caractères modificateurs E et O,
       indiquant qu'il faut employer un autre format ou une autre  spécification.  Si  cet  autre
       format,  ou  cette autre conversion n'est pas disponible dans la localisation en cours, le
       descripteur n'est pas modifié.

       Le modificateur E indique que la chaîne d'entrée peut contenir des versions différentes de
       la date et l'heure, en fonction de la localisation :

       %Ec    Une représentation différente de la date et l'heure.

       %EC    Le nom de l'année de base (période) dans la représentation locale alternative.

       %Ex    Une autre représentation de la date.

       %EX    Une autre représentation de l'heure.

       %Ey    Le  décalage  (en  année)  par  rapport à l'année %EC dans la représentation locale
              alternative.

       %EY    La représentation complète de l'année.

       Le modificateur O indique que les saisies  numériques  peuvent  être  effectuées  dans  un
       format différent, dépendant de la localisation.

       %Od or %Oe
              Le jour du mois. Les zéros en tête sont permis mais pas obligatoires.

       %OH    L'heure (sur 24 heures).

       %OI    L'heure (sur 12 heures).

       %Om    Le numéro du mois.

       %OM    Les minutes.

       %OS    Les secondes.

       %OU    Le numéro de la semaine.

       %Ow    Le numéro du jour dans la semaine, le dimanche étant zéro.

       %OW    Le numéro du jour de la semaine, en commençant le lundi.

       %Oy    L'année  (ou  décalage  par  rapport  à  %C)  en  utilisant  les symboles numérique
              régionaux.

VALEUR RENVOYÉE

       La fonction strptime() renvoie un pointeur sur le  premier  caractère  de  la  chaîne  buf
       n'ayant  pas  été  traité.  Dans  le cas où la chaîne de saisie est plus longue que ce que
       réclame le format, la valeur renvoyée pointe juste après  le  dernier  caractère  d'entrée
       ayant  été  analysé.  Si  toute  la  chaîne  a  été traitée, le pointeur est dirigé sur le
       caractère NUL en fin de  chaîne.  Si  strptime()  n'arrive  pas  à  effectuer  toutes  les
       conversions, il renvoie NULL.

CONFORMITÉ

       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 être initialisé avant l'appel.  Les  détails  diffèrent
       suivant  les  systèmes  UNIX. L'implémentation de la bibliothèque C Gnu ne modifie pas les
       champs non mentionnés explicitement, sauf tm_wday, et tm_yday qui sont  recalculés  si  un
       champ d'année, de mois ou de jour est modifié.

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

       Avant la libc 5.4.13, les espaces (et  les  conversions  « n »  et  « t »)  n'étaient  pas
       gérés ;  les  caractères  de  modification  locale  E  et O n'étaient pas acceptés ; et la
       spécification « C » était un synonyme pour « c ».

       La conversion « y » (année dans le siècle) est toujours considérée  comme  appartenant  au
       vingtième  siècle  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  symétrie,  la  glibc  essaye  d'offrir  pour  strptime()  les  mêmes
       caractères  de formatage que ceux de strftime(3) (dans la plupart des cas, les champs sont
       lus mais aucun membre de tm n'est modifié). Ceci conduit à :

       %F     Équivalent à %Y-%m-%d, le format ISO 8601 pour la date.

       %g     L'année correspondant au numéro de semaine ISO, sans le siècle (0-99).

       %G     L'année correspondant au numéro de semaine ISO (par exemple 1991).

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

       %V     Le numéro de semaine  ISO  8601:1988  (1-53).  Si  la  semaine  (commençant  lundi)
              contenant  le  1er  janvier  a  quatre jours ou plus de la nouvelle année, elle est
              comptée en semaine 1. Sinon elle est considérée comme dernière semaine  de  l'année
              précédente, et c'est la suivante qui est la semaine 1.

       %z     Spécification standard RFC-822/ISO 8601 pour le fuseau horaire.

       %Z     Le nom du fuseau horaire.

       De  même,  à cause des extensions GNU de strftime(3), %k est accepté en synonyme de %H, et
       %l est accepté comme synonyme de %I, et %P en synonyme de %p. Enfin,

       %s     Le nombre de secondes depuis  l'époque,  1er janvier  1970  à 00:00:00  (UTC).  Les
              secondes  de  rattrapage  ne  sont  pas comptées, sauf si un support spécifique est
              disponible.

       L'implémentation de la glibc n'impose pas la présence  de  caractères  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)

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

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

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

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

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».