Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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)