Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       getdate, getdate_r - Conversion d'un temps sous forme de chaîne de caractères au format humain

SYNOPSIS

       #include <time.h>

       struct tm *getdate(const char *string);

       extern int getdate_err;

       #include <time.h>

       int getdate_r(const char *string, struct tm *res);

   Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

       getdate() :
           _XOPEN_SOURCE >= 500
       getdate_r() :
           _GNU_SOURCE

DESCRIPTION

       La fonction getdate() convertit une date et un temps sous forme de chaîne de caractères, contenue dans le
       tampon string, au format humain. Le temps au format humain est sauvegardé dans une  structure  tm  et  un
       pointeur  vers  cette  structure  est  renvoyé.  Cette structure est allouée statiquement, elle sera donc
       écrasée lors d'un prochain appel.

       Contrairement à strptime(3), (qui a un argument format), getdate() utilise les formats présents  dans  le
       fichier  dont  le  chemin  d'accès complet est donné par la variable d'environnement DATEMSK. La première
       ligne du fichier qui peut être mise en correspondance avec la chaîne passée  en  paramètre  est  utilisée
       pour la conversion.

       La  correspondance  n'est  pas sensible à la casse. Les espaces superflus, qu'ils soient dans le motif ou
       dans la chaîne à convertir, sont ignorés.

       Les paramètres de conversion qu'un motif peut contenir sont les mêmes que pour strptime(3). Un indicateur
       de conversion supplémentaire est spécifié dans POSIX.1-2001 :

       %Z     Nom du fuseaux horaire (non implémenté dans le glibc).

       Lorsque  %Z  est spécifié, la structure contenant le temps au format humain est initialisée avec le temps
       actuel du fuseaux horaire. Sinon, elle est initialisée sous forme humaine à l'heure  locale  (comme  lors
       d'un appel à localtime(3)).

       Lorsque seul le jour de la semaine est donné, le jour pris en compte sera le premier jour correspondant à
       partir d'aujourd'hui inclus.

       Lorsque seul le mois est spécifié (et  pas  l'année),  le  mois  pris  en  compte  est  le  premier  mois
       correspondant  à  partir du mois courant inclus. Si aucun jour n'est indiqué, le premier jour du mois est
       pris par défaut.

       Lorsque les heures, minutes et secondes ne sont pas  indiquées,  l'heure  courante  (heures,  minutes  et
       secondes) est prise par défaut.

       Si  aucune  date  n'est indiquée, mais que l'on connaît l'heure, l'heure prise en compte sera la première
       occurrence de cette heure, à partir de l'heure courante incluse.

       getdate_r est une extension GNU qui fournit une version réentrante de getdate.  Au  lieu  d'utiliser  une
       variable  globale  pour  rapporter  les  erreurs  et  un tampon statique pour renvoyer le temps au format
       humain, elle renvoie les erreurs avec la valeur de retour de la fonction et le  temps  au  format  humain
       dans le tampon alloué par l'appelant pointé par res.

VALEUR RENVOYÉE

       En  cas de succès, getdate() renvoie un pointeur vers une structure struct tm. Sinon elle renvoie NULL et
       positionne la variable globale getdate_err avec l'un  des  codes  d'erreur  ci-dessous.  La  modification
       éventuelle de errno est indéfinie.

       En  cas  de  succès,  getdate_r()  renvoie  0.  En  cas  d'erreur,  elle  renvoie l'un des codes d'erreur
       ci-dessous.

ERREURS

       Les erreurs suivantes sont renvoyées par getdate_err (pour getdate()) ou par le  code  de  retour  de  la
       fonction (pour getdate_r()).

       1   La variable d'environnement DATEMSK est non définie ou sa valeur est une chaîne vide.

       2   Le fichier de modèle spécifié par DATEMSK ne peut être ouvert en lecture.

       3   Impossible de lire l'état du fichier.

       4   Le fichier de modèle n'est pas un fichier régulier.

       5   Une erreur est survenue au cours de la lecture du fichier de modèle.

       6   Échec d'allocation mémoire (pas assez de mémoire disponible).

       7   Il n'y a pas de ligne dans le fichier qui puisse être mise en correspondance avec l'entrée.

       8   Paramètres d'entrée invalides.

ENVIRONNEMENT

       DATEMSK
              Fichier contenant les motifs de formatage.

       TZ, LC_TIME
              Variables utilisées par strptime(3).

ATTRIBUTS

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

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

CONFORMITÉ

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

NOTES

       The  POSIX.1  specification  for  strptime(3)   contains  conversion  specifications  using  the %E or %O
       modifier, while such specifications are not given for getdate().  In  glibc,  getdate()   is  implemented
       using strptime(3), so that precisely the same conversions are supported by both.

EXEMPLES

       Le  programme  ci-dessous  appelle  getdate()  pour chaque argument de la ligne de commande et affiche la
       valeur des  champs  de  la  structure  tm  renvoyée.  La  session  shell  suivante  montre  des  exemples
       d'utilisation de ce programme :

           $ TFILE=$PWD/tfile
           $ echo '%A' > $TFILE       # Full name of the day of the week
           $ echo '%T' >> $TFILE      # ISO date (YYYY-MM-DD)
           $ echo '%F' >> $TFILE      # Time (HH:MM:SS)
           $ date
           $ export DATEMSK=$TFILE
           $ ./a.out Tuesday '2009-12-28' '12:22:33'
           Sun Sep  7 06:03:36 CEST 2008
           Call 1 ("Tuesday") succeeded:
               tm_sec   = 36
               tm_min   = 3
               tm_hour  = 6
               tm_mday  = 9
               tm_mon   = 8
               tm_year  = 108
               tm_wday  = 2
               tm_yday  = 252
               tm_isdst = 1
           Call 2 ("2009-12-28") succeeded:
               tm_sec   = 36
               tm_min   = 3
               tm_hour  = 6
               tm_mday  = 28
               tm_mon   = 11
               tm_year  = 109
               tm_wday  = 1
               tm_yday  = 361
               tm_isdst = 0
           Call 3 ("12:22:33") succeeded:
               tm_sec   = 33
               tm_min   = 22
               tm_hour  = 12
               tm_mday  = 7
               tm_mon   = 8
               tm_year  = 108
               tm_wday  = 0
               tm_yday  = 250
               tm_isdst = 1

   Source du programme

       #define _GNU_SOURCE
       #include <time.h>
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(int argc, char *argv[])
       {
           struct tm *tmp;

           for (int j = 1; j < argc; j++) {
               tmp = getdate(argv[j]);

               if (tmp == NULL) {
                   printf("Call %d failed; getdate_err = %d\n",
                          j, getdate_err);
                   continue;
               }

               printf("Call %d (\"%s\") succeeded:\n", j, argv[j]);
               printf("    tm_sec   = %d\n", tmp->tm_sec);
               printf("    tm_min   = %d\n", tmp->tm_min);
               printf("    tm_hour  = %d\n", tmp->tm_hour);
               printf("    tm_mday  = %d\n", tmp->tm_mday);
               printf("    tm_mon   = %d\n", tmp->tm_mon);
               printf("    tm_year  = %d\n", tmp->tm_year);
               printf("    tm_wday  = %d\n", tmp->tm_wday);
               printf("    tm_yday  = %d\n", tmp->tm_yday);
               printf("    tm_isdst = %d\n", tmp->tm_isdst);
           }

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       time(2), localtime(3), setlocale(3), strftime(3), strptime(3)

COLOPHON

       Cette page fait partie de la publication 5.10 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>   et   David   Prévot
       <david@tilapin.org>

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

                                                 1 novembre 2020                                      GETDATE(3)