Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

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

SYNOPSIS

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

       char *strptime(const char *restrict s, const char *restrict format,
                      struct tm *restrict tm);

DESCRIPTION

       La  fonction strptime() est l’inverse de la fonction strftime(3). Elle convertit la chaîne
       de caractères pointée par s 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 champ et du  texte,  rappelant  scanf(3).
       Chaque  descripteur  consiste  en  un caractère % suivi d'un second caractère indiquant la
       substitution pour le descripteur de champ. 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 champ.

       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, format) 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 dans les
              autres pays, notamment en Europe où la notation %d/%m/%y est plus souvent utilisée.
              Le format standard ISO 8601 est %Y-%m-%d.

       %H     L'heure [0,23].

       %I     L'heure sur 12 heures [1,12].

       %j     Le numéro du jour dans l'année [1,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,60],  60  peut  être utilisé pour les secondes de rattrapage ; 61
              était possible antérieurement.

       %t     Un espace blanc quelconque

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

       %U     Le numéro de la semaine [0,53] avec dimanche pour premier jour de  la  semaine.  Le
              premier dimanche de janvier est le premier jour de la semaine 1.

       %w     Le numéro du jour dans la semaine [0,6], 0 correspondant au dimanche.

       %W     Le  numéro  de  la  semaine  [0,53]  avec lundi pour premier jour de la semaine. Le
              premier lundi de janvier est 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 dans le siècle [0,99]. 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 de l'heure, en fonction de la localisation :

       %Ec    Une représentation différente de la date et de 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 alternative 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 en utilisant les symboles numériques alternatifs. Les zéros en tête
              sont permis mais pas obligatoires.

       %OH    L'heure, sur 24 heures, utilisant les symboles numériques alternatifs.

       %OI    L'heure, sur 12 heures, utilisant les symboles numériques alternatifs.

       %Om    Le numéro du mois en utilisant les symboles numériques alternatifs.

       %OM    Les minutes en utilisant les symboles numériques alternatifs.

       %OS    Les secondes en utilisant les symboles numériques alternatifs..

       %OU    Le  numéro de la semaine en utilisant les symboles numériques alternatifs. Dimanche
              premier jour de la semaine.

       %Ow    Le numéro du jour dans la semaine en utilisant les symboles numériques alternatifs,
              le dimanche étant zéro.

       %OW    Le  numéro  du jour de la semaine en utilisant les symboles numériques alternatifs,
              en commençant le lundi.

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

VALEUR RENVOYÉE

       La fonction strptime() renvoie un pointeur sur le premier caractère de la chaîne s 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 l’octet NULL en  fin
       de  chaîne.  Si  strptime()  n'arrive pas à effectuer toutes les conversions, elle renvoie
       NULL.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌─────────────────────────────────────────────┬──────────────────────┬────────────────────┐
       │InterfaceAttributValeur             │
       ├─────────────────────────────────────────────┼──────────────────────┼────────────────────┤
       │strptime()                                   │ Sécurité des threads │ MT-Safe env locale │
       └─────────────────────────────────────────────┴──────────────────────┴────────────────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, SUSv2.

NOTES

       En principe cette fonction n'initialise pas tm, mais n'y stocke que les valeurs lues. Cela
       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 glibc 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é.

       La conversion « y » (année dans le siècle) est toujours  considérée  comme  appartenant  à
       l'intervalle [1950,2049] par la glibc 2.0, et [1969,2068] par la glibc 2.1.

   Notes de 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], 1 correspondant au lundi.

       %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 une prise en charge 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.

EXEMPLES

       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(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 5.13 du projet man-pages Linux.  Une  description
       du  projet et des instructions pour signaler des anomalies et la dernière version de cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>  et  Grégoire  Scano
       <gregoire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.