Man page - strptime(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

strptime

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
Notes de la glibc
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

strptime - Conversion d’une chaüne de dates en une structure tm

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#define _XOPEN_SOURCE /* Consultez feature_test_macros(7) */
#include <time.h>

char *strptime(const char *restrict s , const char *restrict format ,
struct tm *restrict
tm );

DESCRIPTION

La fonction strptime () est l’inverse de la fonction strftime (3). Elle convertit la chaĂźne de caractĂšres pointĂ©e par s en une valeur qui est stockĂ©e dans la structure tm (« reprĂ©sentation humaine ») pointĂ©e par l’argument tm , la conversion Ă©tant rĂ©alisĂ©e en suivant les indications contenues dans la chaĂźne format .

La structure de temps tm est décrite dans tm (type3).

Le paramĂštre format contient des descripteurs de champ et du texte, rappelant scanf (3). Chaque descripteur consiste en un caractĂšre % suivi d’un second caractĂšre indiquant la substitution pour le descripteur de champ. Tous les autres sont considĂ©rĂ©s comme du texte, qui doit ĂȘtre prĂ©sent dans la chaĂźne fournie en entrĂ©e. Toutefois un espace blanc se trouvant dans la chaĂźne de format peut ĂȘtre mis en correspondance avec zĂ©ro ou plusieurs espaces. Il devrait toujours y avoir un espace ou un autre caractĂšre alphanumĂ©rique entre deux descripteurs de champ.

La fonction strptime () traite la chaĂźne d’entrĂ©e de gauche Ă  droite. Les trois types d’élĂ©ments d’entrĂ©e possibles (espace, caractĂšre littĂ©ral, format) sont manipulĂ©s l’un aprĂšs l’autre. Si l’entrĂ©e ne peut pas ĂȘtre mise en correspondance avec la chaĂźne de format, la fonction s’arrĂȘte. Le reste du format et de la chaĂźne d’entrĂ©e ne sont pas traitĂ©s.

Les descripteurs applicables sont dĂ©crits ci-dessous. Dans le cas d’une chaĂźne de caractĂšres (comme le nom d’un jour de la semaine ou d’un mois), la comparaison ne tient pas compte des majuscules/minuscules. Dans le cas d’un nombre, les zĂ©ros au dĂ©but sont autorisĂ©s mais pas obligatoires.

%%

Le caractĂšre %

%a ou %A

Le jour de la semaine en utilisant les noms correspondants Ă  la localisation. Les noms abrĂ©gĂ©s ou entiers peuvent ĂȘtre utilisĂ©s.

%b ou %B ou %h

Le mois en utilisant les noms correspondants Ă  la localisation. Les noms abrĂ©gĂ©s ou entiers peuvent ĂȘtre utilisĂ©s.

%c

La date et l’heure en utilisant le format de la localisation.

%C

Le numéro de siÚcle [ 0 , 99 ].

%d ou %e

Le jour du mois [ 1 , 31 ]

%D

La date, ainsi : %m/%d/%y . C’est la date au format amĂ©ricain, trĂšs gĂȘnante dans les autres pays, notamment en Europe oĂč la notation %d/%m/%y est plus souvent utilisĂ©e. Le format standard ISO 8601 est %Y-%m-%d .

%H

L’heure [ 0 , 23 ].

%I

L’heure sur 12 heures [ 1 , 12 ].

%j

Le numĂ©ro du jour dans l’annĂ©e [ 1 , 366 ].

%m

Le numéro du mois [ 1 , 12 ].

%M

La minute [ 0 , 59 ].

%n

Un espace blanc quelconque

%p

Équivalent local de AM ou PM (Ă©ventuellement rien).

%r

L’heure sur 12 heures avec l’équivalent local de AM ou PM. Dans la localisation POSIX, Ă©quivalent Ă  %I:%M:%S %p . Si le champ t_fmt_ampm de la catĂ©gorie LC_TIME de la localisation est vide, le comportement est indĂ©fini.

%R

Équivalent de %H:%M .

%S

Les secondes [ 0 , 60 ], 60 peut ĂȘtre utilisĂ© pour les secondes de rattrapage ; 61 Ă©tait possible antĂ©rieurement.

%t

Un espace blanc quelconque

%T

Équivalent de %H:%M:%S .

%U

Le numéro de la semaine [ 0 , 53 ] avec dimanche pour premier jour de la semaine. Le premier dimanche de janvier est le premier jour de la semaine 1 .

%w

Le numéro du jour dans la semaine [ 0 , 6 ], 0 correspondant au dimanche.

%W

Le numéro de la semaine [ 0 , 53 ] avec lundi pour premier jour de la semaine. Le premier lundi de janvier est 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’annĂ©e dans le siĂšcle [ 0 , 99 ]. Lorsque le siĂšcle n’est pas indiquĂ© par une autre conversion, les annĂ©es 69 Ă  99 sont considĂ©rĂ©es comme Ă©tant du vingtiĂšme siĂšcle (1969 Ă  1999), et les annĂ©es 00 Ă  68 du vingt-et-uniĂšme siĂšcle (2000-2068).

%Y

L’annĂ©e en incluant le siĂšcle (par exemple, 1996)

Certains descripteurs peuvent ĂȘtre complĂ©tĂ©s par les caractĂšres modificateurs E et O, indiquant qu’il faut employer un autre format ou une autre spĂ©cification. Si cet autre format ou cette autre conversion n’est pas disponible dans la localisation en cours, le descripteur n’est pas modifiĂ©.

Le modificateur E indique que la chaĂźne d’entrĂ©e peut contenir des versions diffĂ©rentes de la date et de l’heure, en fonction de la localisation :

%Ec

Une reprĂ©sentation diffĂ©rente de la date et de l’heure.

%EC

Le nom de l’annĂ©e de base (pĂ©riode) dans la reprĂ©sentation locale alternative.

%Ex

Une autre représentation de la date.

%EX

Une autre reprĂ©sentation de l’heure.

%Ey

Le dĂ©calage (en annĂ©e) par rapport Ă  l’annĂ©e %EC dans la reprĂ©sentation locale alternative.

%EY

La reprĂ©sentation alternative complĂšte de l’annĂ©e.

Le modificateur O indique que les saisies numĂ©riques peuvent ĂȘtre effectuĂ©es dans un format diffĂ©rent, dĂ©pendant de la localisation.
%Od
or %Oe

Le jour du mois en utilisant les symboles numĂ©riques alternatifs. Les zĂ©ros en tĂȘte sont permis mais pas obligatoires.

%OH

L’heure, sur 24 heures, utilisant les symboles numĂ©riques alternatifs.

%OI

L’heure, sur 12 heures, utilisant les symboles numĂ©riques alternatifs.

%Om

Le numéro du mois en utilisant les symboles numériques alternatifs.

%OM

Les minutes en utilisant les symboles numériques alternatifs.

%OS

Les secondes en utilisant les symboles numériques alternatifs..

%OU

Le numéro de la semaine en utilisant les symboles numériques alternatifs. Dimanche premier jour de la semaine.

%Ow

Le numéro du jour dans la semaine en utilisant les symboles numériques alternatifs, le dimanche étant zéro.

%OW

Le numéro du jour de la semaine en utilisant les symboles numériques alternatifs, en commençant le lundi.

%Oy

L’annĂ©e (ou dĂ©calage par rapport Ă  %C ) en utilisant les symboles numĂ©riques rĂ©gionaux alternatifs.

VALEUR RENVOYÉE

La fonction strptime () renvoie un pointeur sur le premier caractĂšre de la chaĂźne s n’ayant pas Ă©tĂ© traitĂ©. Dans le cas oĂč la chaĂźne de saisie est plus longue que ce que rĂ©clame le format, la valeur renvoyĂ©e pointe juste aprĂšs le dernier caractĂšre d’entrĂ©e ayant Ă©tĂ© analysĂ©. Si toute la chaĂźne a Ă©tĂ© traitĂ©e, le pointeur est dirigĂ© sur l’octet NULL en fin de chaĂźne. Si strptime () n’arrive pas Ă  effectuer toutes les conversions, elle renvoie NULL.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3882472-1.png

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, SUSv2.

NOTES

En principe cette fonction n’initialise pas tm , mais n’y stocke que les valeurs lues. Cela signifie que le contenu de tm doit ĂȘtre initialisĂ© avant l’appel. Les dĂ©tails diffĂšrent suivant les systĂšmes UNIX. L’implĂ©mentation de la bibliothĂšque glibc ne modifie pas les champs non mentionnĂ©s explicitement, sauf tm_wday , et tm_yday qui sont recalculĂ©s si un champ d’annĂ©e, de mois ou de jour est modifiĂ©.

La conversion « y » (annĂ©e dans le siĂšcle) est toujours considĂ©rĂ©e comme appartenant Ă  l’intervalle [1950,2049] par la glibc 2.0, et [1969,2068] par la glibc 2.1.

Notes de la glibc

Pour des raisons de symĂ©trie, la glibc essaye d’offrir pour strptime () les mĂȘmes caractĂšres de formatage que ceux de strftime (3) (dans la plupart des cas, les champs sont lus mais aucun membre de tm n’est modifiĂ©). Ceci conduit à :

%F

Équivalent à %Y-%m-%d , le format ISO 8601 pour la date.

%g

L’annĂ©e correspondant au numĂ©ro de semaine ISO, sans le siĂšcle [ 0 , 99 ].

%G

L’annĂ©e correspondant au numĂ©ro de semaine ISO (par exemple 1991).

%u

Le numéro du jour de la semaine [ 1 , 7 ], 1 correspondant au lundi.

%V

Le numĂ©ro de semaine ISO 8601:1988 [ 1 , 53 ]. Si la semaine (commençant lundi) contenant le 1er janvier a quatre jours ou plus de la nouvelle annĂ©e, elle est comptĂ©e en semaine 1 . Sinon elle est considĂ©rĂ©e comme derniĂšre semaine de l’annĂ©e prĂ©cĂ©dente, et c’est la suivante qui est la semaine 1 .

%z

Spécification standard RFC-822/ISO 8601 pour le fuseau horaire.

%Z

Le nom du fuseau horaire.

De mĂȘme, Ă  cause des extensions GNU de strftime (3), %k est acceptĂ© en synonyme de %H , et %l est acceptĂ© comme synonyme de %I , et %P en synonyme de %p . Enfin,

%s

Le nombre de secondes depuis l’époque, 1er janvier 1970 à 00:00:00 (UTC). Les secondes de rattrapage ne sont pas comptĂ©es, sauf si une prise en charge spĂ©cifique est disponible.

L’implĂ©mentation de la glibc n’impose pas la prĂ©sence de caractĂšres blancs entre deux descripteurs de champs.

EXEMPLES

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(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)

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 Grégoire Scano <gregoire.scano@malloc.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .