.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright 2001 walter harms (walter.harms@informatik.uni-oldenburg.de)
.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
.\"     <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Modified, 2001-12-26, aeb
.\" 2008-09-07, mtk, Various rewrites; added an example program.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH getdate 3 "2 mai 2024" "Pages du manuel de Linux 6.8" 
.SH NOM
getdate, getdate_r \- Conversion d'un temps sous forme de chaîne de
caractères au format humain
.SH BIBLIOTHÈQUE
Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP)
.SH SYNOPSIS
.nf
\fB#include <time.h>\fP
.P
\fBstruct tm *getdate(const char *\fP\fIstring\fP\fB);\fP
.P
\fBextern int getdate_err;\fP
.P
\fBint getdate_r(const char *restrict \fP\fIstring\fP\fB, struct tm *restrict \fP\fIres\fP\fB);\fP
.fi
.P
.RS -4
Exigences de macros de test de fonctionnalités pour la glibc (consulter
\fBfeature_test_macros\fP(7)) :
.RE
.P
\fBgetdate\fP() :
.nf
.\"    || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    _XOPEN_SOURCE >= 500
.fi
.P
\fBgetdate_r\fP() :
.nf
    _GNU_SOURCE
.fi
.SH DESCRIPTION
La fonction \fBgetdate\fP() convertit une date et un temps sous forme de chaîne
de caractères, contenue dans le tampon \fIstring\fP, au format humain. Le temps
au format humain est sauvegardé dans une structure \fItm\fP et un pointeur vers
cette structure est renvoyé. Cette structure est allouée statiquement, elle
sera donc écrasée lors d'un prochain appel.
.P
Contrairement à \fBstrptime\fP(3), (qui a un argument \fIformat\fP), \fBgetdate\fP()
utilise les formats présents dans le fichier dont le chemin d'accès complet
est donné par la variable d'environnement \fBDATEMSK\fP. 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.
.P
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.
.P
Les paramètres de conversion qu'un motif peut contenir sont les mêmes que
pour \fBstrptime\fP(3). Un indicateur de conversion supplémentaire est spécifié
dans POSIX.1\-2001\ :
.TP 
\fB%Z\fP
.\" FIXME Is it (still) true that %Z is not supported in glibc?
.\" Looking at the glibc 2.21 source code, where the implementation uses
.\" strptime(), suggests that it might be supported.
Nom du fuseaux horaire (non implémenté dans le glibc).
.P
Lorsque \fB%Z\fP 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 à
\fBlocaltime\fP(3)).
.P
Lorsque seul le jour de la semaine est donné, le jour pris en compte sera le
premier jour correspondant à partir d'aujourd'hui inclus.
.P
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.
.P
Lorsque les heures, minutes et secondes ne sont pas indiquées, l'heure
courante (heures, minutes et secondes) est prise par défaut.
.P
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.
.P
\fBgetdate_r\fP est une extension GNU qui fournit une version réentrante de
\fBgetdate\fP. 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 \fIres\fP.
.SH "VALEUR RENVOYÉE"
En cas de succès, \fBgetdate\fP() renvoie un pointeur vers une structure
\fIstruct tm\fP. Sinon elle renvoie NULL et positionne la variable globale
\fIgetdate_err\fP avec l'un des codes d'erreur ci\-dessous. La modification
éventuelle de \fIerrno\fP est indéfinie.
.P
En cas de succès, \fBgetdate_r\fP() renvoie 0. En cas d'erreur, elle renvoie
l'un des codes d'erreur ci\-dessous.
.SH ERREURS
Les erreurs suivantes sont renvoyées par \fIgetdate_err\fP (pour \fBgetdate\fP())
ou par le code de retour de la fonction (pour \fBgetdate_r\fP()).
.TP  4n
\fB1\fP
La variable d'environnement \fBDATEMSK\fP est non définie ou sa valeur est une
chaîne vide.
.TP 
\fB2\fP
Le fichier de modèle spécifié par \fBDATEMSK\fP ne peut être ouvert en lecture.
.TP 
\fB3\fP
.\" stat()
Impossible de lire l'état du fichier.
.TP 
\fB4\fP
Le fichier de modèle n'est pas un fichier régulier.
.TP 
\fB5\fP
Une erreur est survenue au cours de la lecture du fichier de modèle.
.TP 
\fB6\fP
.\" Error 6 doesn't seem to occur in glibc
Échec d'allocation mémoire (pas assez de mémoire disponible).
.TP 
\fB7\fP
Il n'y a pas de ligne dans le fichier qui puisse être mise en correspondance
avec l'entrée.
.TP 
\fB8\fP
Paramètres d'entrée invalides.
.SH ENVIRONNEMENT
.TP 
\fBDATEMSK\fP
Fichier contenant les motifs de formatage.
.TP 
\fBTZ\fP
.TQ
\fBLC_TIME\fP
Variables utilisées par \fBstrptime\fP(3).
.SH ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
\fBattributes\fP(7).
.TS
allbox;
lb lb lbx
l l l.
Interface	Attribut	Valeur
T{
.na
.nh
\fBgetdate\fP()
T}	Sécurité des threads	T{
.na
.nh
MT\-Unsafe race:getdate env locale
T}
T{
.na
.nh
\fBgetdate_r\fP()
T}	Sécurité des threads	T{
.na
.nh
MT\-Safe env locale
T}
.TE
.SH VERSIONS
La spécification POSIX.1 pour \fBstrptime\fP(3) contient des spécifications de
conversion utilisant les modificateurs \fB%E\fP ou \fB%O\fP alors que de tels
modificateurs ne sont pas indiqués pour \fBgetdate\fP(). Dans la glibc,
\fBgetdate\fP() est implémentée avec \fBstrptime\fP(3), si bien que les deux
fonctions supportent exactement les mêmes conversions.
.SH STANDARDS
POSIX.1\-2008.
.SH HISTORIQUE
POSIX.1\-2001.
.SH EXEMPLES
Le programme ci\-dessous appelle \fBgetdate\fP() pour chaque argument de la
ligne de commande et affiche la valeur des champs de la structure \fItm\fP
renvoyée. La session shell suivante montre des exemples d'utilisation de ce
programme :
.P
.in +4n
.EX
$\fB TFILE=$PWD/tfile\fP
$\fB echo \[aq]%A\[aq] > $TFILE \fP      # Full name of the day of the week
$\fB echo \[aq]%T\[aq] >> $TFILE\fP      # Time (HH:MM:SS)
$\fB echo \[aq]%F\[aq] >> $TFILE\fP      # ISO date (YYYY\-MM\-DD)
$\fB date\fP
$\fB export DATEMSK=$TFILE\fP
$\fB ./a.out Tuesday \[aq]2009\-12\-28\[aq] \[aq]12:22:33\[aq]\fP
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
.EE
.in
.SS "Source du programme"
.\" SRC BEGIN (getdate.c)
\&
.EX
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
\&
int
main(int argc, char *argv[])
{
    struct tm *tmp;
\&
    for (size_t j = 1; j < argc; j++) {
        tmp = getdate(argv[j]);
\&
        if (tmp == NULL) {
            printf("Échec de l'appel %zu ; getdate_err = %d\en",
                   j, getdate_err);
            continue;
        }
\&
        printf("Appel %zu (\e"%s\e") réussi :\en", j, argv[j]);
        printf("    tm_sec   = %d\en", tmp\->tm_sec);
        printf("    tm_min   = %d\en", tmp\->tm_min);
        printf("    tm_hour  = %d\en", tmp\->tm_hour);
        printf("    tm_mday  = %d\en", tmp\->tm_mday);
        printf("    tm_mon   = %d\en", tmp\->tm_mon);
        printf("    tm_year  = %d\en", tmp\->tm_year);
        printf("    tm_wday  = %d\en", tmp\->tm_wday);
        printf("    tm_yday  = %d\en", tmp\->tm_yday);
        printf("    tm_isdst = %d\en", tmp\->tm_isdst);
    }
\&
    exit(EXIT_SUCCESS);
}
.EE
.\" SRC END
.SH "VOIR AUSSI"
\fBtime\fP(2), \fBlocaltime\fP(3), \fBsetlocale\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3)
.PP
.SH 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
Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
.
.PP
Cette traduction est une documentation libre ; veuillez vous reporter à la
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License version 3
.UE
concernant les conditions de copie et 
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
.PP
Si vous découvrez un bogue dans la traduction de cette page de manuel, 
veuillez envoyer un message à
.MT debian-l10n-french@lists.debian.org
.ME .