Provided by: manpages-fr-dev_4.26.0-1_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-2008.

HISTORIQUE

       POSIX.1-2001, 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 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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                        strptime(3)