Provided by:
manpages-fr-dev_3.32d0.2p4-1_all 
NOM
strptime - Conversion d'une chaine de date en une structure tm
SYNOPSIS
#define _XOPEN_SOURCE /* Consultez feature_test_macros(7) */
#include <time.h>
char *strptime(const char *buf, const char *format, struct tm *tm);
DESCRIPTION
La fonction strptime() est complementaire de la fonction strftime(3).
Elle convertit la chaine de caracteres pointee par buf en une valeur
qui est stockee dans la structure tm pointee par l'argument tm, la
conversion etant realisee en suivant les indications contenues dans la
chaine format. Cette derniere contient des descripteurs de champs et du
texte, rappelant scanf(3). Chaque descripteur consiste en un caractere
% suivi d'un second caractere indiquant le champ a interpreter. Tous
les autres sont consideres comme du texte, qui doit etre present dans
la chaine fournie en entree. Toutefois un espace blanc se trouvant dans
la chaine de format peut etre mis en correspondance avec zero ou
plusieurs espaces. Il devrait toujours y avoir un espace ou un autre
caractere alphanumerique entre deux descripteurs de champs.
La fonction strptime() traite la chaine d'entree de gauche a droite.
Les trois types d'elements d'entree possibles (espace, caractere
litteral, conversion) sont manipules l'un apres l'autre. Si l'entree ne
peut pas etre mise en correspondance avec la chaine de format, la
fonction s'arrete. Le reste du format et de la chaine d'entree ne sont
pas traites.
Les descripteurs applicables sont decrits ci-dessous. Dans le cas d'une
chaine de caracteres (comme un nom de jour ou de mois), la comparaison
ne tient pas compte des majuscules/minuscules. Dans le cas d'un nombre,
les zeros au debut sont autorises mais pas obligatoires.
%% Le caractere %
%a ou %A
Le jour de la semaine en utilisant les noms correspondants a la
localisation. Les noms abreges ou entiers peuvent etre utilises.
%b ou %B ou %h
Le mois en utilisant les noms correspondants a la localisation.
Les noms abreges ou entiers peuvent etre utilises.
%c La date et l'heure en utilisant le format de la localisation.
%C Le numero de siecle (0-99).
%d ou %e
Le jour du mois (1-31)
%D La date, ainsi : %m/%d/%y. C'est la date au format americain,
tres genante pour les autres pays, notamment l'Europe qui
utilise une notation %d/%m/%y. Le format standard ISO 8601 est
%Y-%m-%d.
%H L'heure (0-23)
%I L'heure (0-12)
%j Le numero du jour dans l'annee (001-366)
%m Le numero du mois (1-12)
%M La minute (0-59)
%n Un espace blanc quelconque
%p Equivalent local de AM ou PM (eventuellement rien).
%r L'heure sur 12 heures avec l'equivalent local de AM ou PM. Dans
la localisation POSIX, equivalent a %I:%M:%S %p. Si le champ
t_fmt_ampm de la categorie LC_TIME de la localisation est vide,
le comportement est indefini.
%R Equivalent de %H:%M.
%S Les secondes (0-61, des secondes de rattrapages sont autorisees)
%t Un espace blanc quelconque
%T Equivalent de %H:%M:%S.
%U Le numero de semaine (0-53), le premier dimanche de janvier
etant le premier jour de la semaine 1.
%w Le numero du jour dans la semaine (0-6), en commencant le
dimanche.
%W Le numero de semaine (0-53), le premier lundi de janvier etant
le premier jour de la semaine 1.
%x la date, en utilisant le format usuel de la localisation.
%X l'heure, en utilisant le format usuel de la localisation.
%y l'annee sans le siecle (0-99; les zeros au debut sont autorises
mais pas obligatoires). Lorsque le siecle n'est pas indique par
une autre conversion, les annees 69 a 99 sont considerees comme
etant du vingtieme siecle (1969 a 1999), et les annees 00-68 du
vingt-et-unieme siecle (2000-2068).
%Y L'annee en incluant le siecle (par exemple, 1996)
Certains descripteurs peuvent etre completes par les caracteres
modificateurs E et O, indiquant qu'il faut employer un autre format ou
une autre specification. Si cet autre format, ou cette autre conversion
n'est pas disponible dans la localisation en cours, le descripteur
n'est pas modifie.
Le modificateur E indique que la chaine d'entree peut contenir des
versions differentes de la date et l'heure, en fonction de la
localisation :
%Ec Une representation differente de la date et l'heure.
%EC Le nom de l'annee de base (periode) dans la representation
locale alternative.
%Ex Une autre representation de la date.
%EX Une autre representation de l'heure.
%Ey Le decalage (en annee) par rapport a l'annee %EC dans la
representation locale alternative.
%EY La representation complete de l'annee.
Le modificateur O indique que les saisies numeriques peuvent etre
effectuees dans un format different, dependant de la localisation.
%Od or %Oe
Le jour du mois. Les zeros en tete sont permis mais pas
obligatoires.
%OH L'heure (sur 24 heures).
%OI L'heure (sur 12 heures).
%Om Le numero du mois.
%OM Les minutes.
%OS Les secondes.
%OU Le numero de la semaine.
%Ow Numero du jour dans la semaine, le dimanche etant zero.
%OW Le numero du jour de la semaine, en commencant le lundi.
%Oy L'annee (ou decalage par rapport a %C) en utilisant les symboles
numerique regiaunaux.
Les champs de la structure tm definie dans <time.h> sont :
struct tm
{
int tm_sec; /* secondes */
int tm_min; /* minutes */
int tm_hour; /* heures */
int tm_mday; /* jour du mois */
int tm_mon; /* mois */
int tm_year; /* annee */
int tm_wday; /* jour de la semaine */
int tm_yday; /* jour de l'annee */
int tm_isdst; /* decalage ete/hiver */
};
VALEUR RENVOY'EE
La fonction strptime() renvoie un pointeur sur le premier caractere de
la chaine buf n'ayant pas ete traite. Dans le cas ou la chaine de
saisie est plus longue que ce que reclame le format, la valeur renvoyee
pointe juste apres le dernier caractere d'entree ayant ete analyse. Si
toute la chaine a ete traitee, le pointeur est dirige sur le caractere
NUL en fin de chaine. Si strptime() n'arrive pas a effectuer toutes les
conversions, il renvoie NULL.
CONFORMIT'E
SUSv2, POSIX.1-2001.
NOTES
En principe cette fonction n'initialise pas tm, mais n'y stocke que les
valeurs lues. Ceci signifie que le contenu de tm doit etre initialise
avant l'appel. Les details different suivant les systemes UNIX.
L'implementation de la bibliotheque C Gnu ne modifie pas les champs non
mentionnes explicitement, sauf tm_wday, et tm_yday qui sont recalcules
si un champ d'annee, de mois ou de jour est modifie.
Cette fonction n'est disponible que dans les versions de bibliotheque
depuis la 4.6.8. Les bibliotheques Linux libc4 et libc5 incluaient
toujours le prototype de cette fonction, la bibliotheque glibc 2 ne
fournit le prototype que si les constantes _XOPEN_SOURCE ou _GNU_SOURCE
sont definies.
Avant la libc 5.4.13, les espaces (et les conversions << n >> et
<< t >>) n'etaient pas geres ; les caracteres de modification locale E
et O n'etaient pas acceptes ; et la specification << C >> etait un
synonyme pour << c >>.
La conversion << y >> (annee dans le siecle) est toujours consideree
comme appartenant au vingtieme siecle dans les libc4 et libc5. Elle est
prise dans l'intervalle 1950-2049 par la glibc 2.0, et 1969-2068 par la
glibc 2.1.
Notes sur la glibc
Pour des raisons de symetrie, la glibc essaye d'offrir pour strptime()
les memes caracteres de formatage que ceux de strftime(3) (dans la
plupart des cas, les champs sont lus mais aucun membre de tm n'est
modifie). Ceci conduit a :
%F Equivalent a %Y-%m-%d, le format ISO 8601 pour la date.
%g L'annee correspondant au numero de semaine ISO, sans le siecle
(0-99).
%G L'annee correspondant au numero de semaine ISO (par exemple
1991).
%u Le numero du jour de la semaine (1-7, lundi valant 1).
%V Le numero de semaine ISO 8601:1988 (1-53). Si la semaine
(commencant lundi) contenant le 1er janvier a quatre jours ou
plus de la nouvelle annee, elle est comptee en semaine 1. Sinon
elle est consideree comme derniere semaine de l'annee
precedente, et c'est la suivante qui est la semaine 1.
%z Specification standard RFC-822/ISO 8601 pour le fuseau horaire.
%Z Le nom du fuseau horaire.
De meme, a cause des extensions GNU de strftime(3), %k est accepte en
synonyme de %H, et %l est accepte comme synonyme de %I, et %P en
synonyme de %p. Enfin,
%s Le nombre de secondes depuis l'epoque, 1er janvier 1970
a 00:00:00 (UTC). Les secondes de rattrapage ne sont pas
comptees, sauf si un support specifique est disponible.
L'implementation de la glibc n'impose pas la presence de caracteres
blancs entre deux descripteurs de champs.
EXEMPLE
L'exemple suivant montre l'utilisation de strptime() et strftime(3).
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int
main(void)
{
struct tm tm;
char buf[255];
memset(&tm, 0, sizeof(struct tm));
strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
exit(EXIT_SUCCESS);
}
VOIR AUSSI
time(2), getdate(3), scanf(3), setlocale(3), strftime(3)
COLOPHON
Cette page fait partie de la publication 3.32 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/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Nicolas
Francois 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> >>.
GNU 5 decembre 2009 STRPTIME(3)