Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       getdate,  getdate_r  -  Conversion  d'un  temps sous forme de chaine de
       caracteres 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 fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       getdate() :
           _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
       getdate_r() :
           _GNU_SOURCE

DESCRIPTION

       La  fonction  getdate()  convertit  une  date et un temps sous forme de
       chaine de caracteres, contenue dans le tampon string, au format humain.
       Le  temps  au  format humain est sauvegarde dans une structure tm et un
       pointeur vers cette structure est renvoye. Cette structure est  allouee
       statiquement, elle sera donc ecrasee lors d'un prochain appel.

       Contrairement  a  strptime(3),  (qui  a  un argument format), getdate()
       utilise les formats presents dans le fichier  dont  le  chemin  d'acces
       complet  est donne par la variable d'environnement DATEMSK. La premiere
       ligne du fichier qui peut etre mise en correspondance  avec  la  chaine
       passee en parametre est utilisee pour la conversion.

       La correspondance n'est pas sensible a la casse. Les espaces superflus,
       qu'ils soient dans le  motif  ou  dans  la  chaine  a  convertir,  sont
       ignores.

       Les  parametres  de conversion qu'un motif peut contenir sont les memes
       que pour strptime(3). Un indicateur de  conversion  supplementaire  est
       specifie dans POSIX.1-2001 :

       %Z     Nom du fuseaux horaire (non implemente dans le glibc).

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

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

       Lorsque  seul  le  mois  est specifie (et pas l'annee), le mois pris en
       compte est le premier mois  correspondant  a  partir  du  mois  courant
       inclus.  Si  aucun jour n'est indique, le premier jour du mois est pris
       par defaut.

       Lorsque les heures, minutes et secondes ne sont pas indiquees,  l'heure
       courante (heures, minutes et secondes) est prise par defaut.

       Si  aucune  date n'est indiquee, mais que l'on connait l'heure, l'heure
       prise en compte sera la premiere occurrence de cette heure, a partir de
       l'heure courante incluse.

       getdate_r  est  une extension GNU qui fournit une version reentrante 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 alloue par l'appelant pointe par
       res.

VALEUR RENVOY'EE

       En cas de succes, 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
       eventuelle de errno est indefinie.

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

ERREURS

       Les erreurs suivantes sont renvoyees 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 definie ou sa valeur
           est une chaine vide.

       2   Le fichier de modele specifie par DATEMSK ne peut  etre  ouvert  en
           lecture.

       3   Impossible de lire l'etat du fichier.

       4   Le fichier de modele n'est pas un fichier regulier.

       5   Une  erreur  est  survenue  au  cours  de  la lecture du fichier de
           modele.

       6   Echec d'allocation memoire (pas assez de memoire disponible).

       7   Il n'y a pas de ligne dans le  fichier  qui  puisse  etre  mise  en
           correspondance avec l'entree.

       8   Parametres d'entree invalides.

ENVIRONNEMENT

       DATEMSK
              Fichier contenant les motifs de formatage.

       TZ, LC_TIME
              Variables utilisees par strptime(3).

CONFORMIT'E

       POSIX.1-2001.

NOTES

       La   specification   POSIX.1-2001   pour   strptime(3)   contient   des
       specifications de conversion utilisant les modificateurs %E ou %O alors
       que  de tels modificateurs ne sont pas indiques pour getdate(). Dans la
       glibc, getdate() est implementee avec strptime(3), si bien que les deux
       fonctions supportent exactement les memes conversions.

EXEMPLE

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

           $ TFILE=$PWD/tfile
           $ echo '%A' > $TFILE       # Full weekday name
           $ 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 500
       #include <time.h>
       #include <stdio.h>
       #include <stdlib.h>

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

           for (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),
       feature_test_macros(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Stephan           Rafin          (2002),          Alain          Portal
       <URL:http://manpagesfr.free.fr/> (2006).  Florentin Duneau et  l'equipe
       francophone de traduction de Debian (2006-2009).

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

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                               20 septembre 2010                    GETDATE(3)