Provided by: manpages-fr-dev_3.57d1p1-1_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 (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 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

   Multithreading (voir pthreads(7))
       La fonction getdate() n'est pas sûre dans un contexte multithread.

       La fonction getdate_r() est sûre dans un contexte multithread.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       La spécification POSIX.1-2001 pour strptime(3) contient des spécifications de  conversion  utilisant  les
       modificateurs  %E  ou  %O  alors  que  de tels modificateurs ne sont pas indiqués pour getdate(). Dans la
       glibc, getdate() est implémentée avec strptime(3), si bien que les deux fonctions  supportent  exactement
       les mêmes 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  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 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)

COLOPHON

       Cette page fait partie de la publication 3.57 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

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

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

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

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

                                                 17 janvier 2014                                      GETDATE(3)