noble (3) strptime.3.gz

Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #define _XOPEN_SOURCE       /* Consultez 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 (« représentation humaine ») pointée par
       l'argument tm, la conversion étant réalisée en suivant les indications contenues dans la chaîne format.

       La structure de temps tm est décrite dans tm(type3).

       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 │
       └────────────────────────────────────────────────────────────┴──────────────────────┴────────────────────┘

STANDARDS

       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)

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⟩.