STRFTIME(3) Manuel du programmeur Linux STRFTIME(3)
NOM
strftime - Formater la date et l'heure.
SYNOPSIS
#include <time.h>
size_t strftime (char *s, size_t max, const char *format,
const struct tm *tm);
DESCRIPTION
La fonction strftime() formate les divers champs de la
structure tm en fonction de la chaîne de spécification
format, puis place le résultat dans la chaîne s de taille
max.
Les caractères ordinaires présents dans la chaîne format
seront simplement copiés dans s. Les indicateurs de con
version sont introduits par le caractère `%' et sont rem
placés, dans la chaîne s ainsi :
%a Le nom abrégé du jour de la semaine, en fonction de
la localisation en cours.
%A Le nom complet du jour de la semaine, en fonction
de la localisation en cours.
%b Le nom abrégé du mois, en fonction de la localisa
tion en cours.
%B Le nom complet du mois, en fonction de la localisa
tion en cours.
%c La représentation classique de la date et de
l'heure, suivant la localisation en cours.
%C Le siècle (année / 100) sous forme de nombre de
deux chiffres. (SU)
%d Le quantième du mois sous forme de nombre décimal
(entre 01 et 31).
%D Equivalent à %m/%d/%y. Seulement pour les
américains. Ces derniers doivent noter que les
autres pays préfèrent le format %d/%m/%y. Dans un
contexte international ce format est ambigu et doit
être évité. (SU)
%e Comme %d, le quantième du mois sous forme décimal,
mais l'éventuel zéro en tête est remplacé par un
espace. (SU)
%E Modificateur : Utiliser un format de rechange. Voir
plus bas. (SU)
GNU 18 Mai 1999 1
STRFTIME(3) Manuel du programmeur Linux STRFTIME(3)
%G L'année ISO 8601 avec le siècle comme nombre
décimal. L'année sur quatre chiffres correspond au
numéro de la semaine ISO (voir %V). C'est le même
format que %y, sauf que si le numéro de semaine
appartient à l'année suivante ou précédente, c'est
celle-ci qui est affichée à la place. (TZ)
%g Comme %G sans le siècle, c'est à dire avec une
année sur deux chiffres (00-99). (TZ)
%h Equivalent à %b. (SU)
%H L'heure, sur 24 heures, sous forme de nombre
décimal (entre 00 et 23).
%I L'heure, sur 12 heures, sous forme de nombre
décimal (entre 01 et 12).
%j Le numéro du jour dans l'année (entre 001 et 366).
%k L'heure (sur 24 heures) sous forme de nombre
décimal (intervalle 0 à 23). Les chiffres uniques
sont précédés d'un blanc (voir aussi %H). (TZ).
%l L'heure (sur 12 heures) sous forme de nombre
décimal (intervalle 1 à 12). Les chiffres uniques
sont précédés d'un blanc (voir aussi %I). (TZ).
%m Le numéro du mois (entre 01 et 12).
%M La minute, sous forme de nombre décimal (00 à 59).
%n Un caractère saut-de-ligne. (SU)
%O Modificateur : Utiliser un format de rechange. Voir
plus bas. (SU)
%p L'une des deux chaînes `AM' ou `PM' en fonction de
l'heure, ou la traduction de ces chaînes en fonc
tions de la localisation en cours. Midi est traité
comme `PM' et Minuit comme `AM'.
%P Comme %p mais en minuscule: `am' ou `pm' ou une
chaîne locale équivalente. (GNU)
%r L'heure en notation a.m. ou p.m. Dans la localisa
tion POSIX, c'est équivalent à `%I:%M:%S %p'. (SU)
%R L'heure en format 24 heures (%H:%M). (SU). Pour
avoir les secondes voir %T.
%s Le nombre de secondes écoulées depuis le 1er Jan
vier 1970 à 00:00:00 UTC. (TZ).
%S La seconde, sous forme de nombre décimal. (00-61)
GNU 18 Mai 1999 2
STRFTIME(3) Manuel du programmeur Linux STRFTIME(3)
%t Un caractère Tab. (SU)
%T L'heure en notation 24 heures (%H:%M:%S). (SU)
%u Le jour de la semaine sous forme décimal, de 1
(Lundi) à 7. Voir aussi %w. (SU)
%U Le numéro de la semaine dans l'année, sous forme de
nombre décimal (00-53), en commençant le comptage
au premier Dimanche de l'année. Voir aussi %V et
%W.
%V Le numéro de semaine ISO 8601:1988 de l'année en
cours sous forme de nombre décimal dans l'inter
valle 01-53, où la semaine 1 est la première ayant
au moins 4 jours dans l'année en cours, et où Lundi
est le premier jour de la semaine. Voir aussi %U et
%W. (SU)
%W Le numéro de la semaine dans l'année, sous forme de
nombre décimal (00-53), en commençant le comptage
au premier Lundi de l'année.
%w Le numéro du jour de la semaine, sous forme
décimale (0-6), Dimanche valant 0. Voir aussi %u.
%x La représentation usuelle de la date, sans l'heure,
dans la localisation en cours.
%X La représentation usuelle de l'heure, sans la date,
dans la localisation en cours.
%y L'année, sous forme de nombre décimal, sans le
siècle (entre 00 et 99).
%Y L'année, sous forme de nombre décimal, incluant le
siècle.
%z Le fuseau horaire sous forme de décalage GMT.
Nécessaire pour crééer des dates conformes à la RFC
822 (avec "%a, %d %b %Y %H:%M:%S %z"). (GNU)
%Z Le nom ou l'abréviation du fuseau horaire.
%+ La date et l'heure au format date(1). (TZ)
%% Un caractère `%'.
Certains indicateurs de conversion peuvent être modifiés
en les faisant préceder par le modificateur E ou O pour
indiquer un format de rechange. Si le format de rechange
n'existe pas pour la localisation en cours, le comporte
ment ne sera pas modifié. Les Spécifications Single Unix
mentionnent %Ec, %EC, %Ex, %EX, %Ry, %EY, %Od, %Oe, %OH,
GNU 18 Mai 1999 3
STRFTIME(3) Manuel du programmeur Linux STRFTIME(3)
%OI, %Om, %OM, %OS, %Ou, %OU, %OV, %Ow, %OW, %Oy, où
l'action du modificateur O est d'utiliser un autre format
numérique (par exemple des chiffres romains), et l'action
de E est d'utiliser une représentaiton dépendant de la
localisation.
Les champs de la structure tm sont définis dans <time.h>.
Voir aussi ctime(3).
VALEUR RENVOYÉE
La fonction strftime() renvoie le nombre de caractères
écrits dans la table s, sans compter le caractère NUL
final. Si la chaîne était trop courte, strftime() renvoie
0, et le contenu de la chaîne est indéfini. (Ceci, du
moins, depuis la libc 4.4.4, des versions plus anciennes
de la libc, comme la 4.4.1, renvoyaient max si la chaîne
était trop courte)
Remarquez qu'une valeur de retour nulle n'indique pas tou
jours une erreur. Dans de nombreuses localisations, par
exemple, %p renvoie une chaîne vide.
ENVIRONNEMENT
Les variables d'environnement TZ et LC_TIME sont
utilisées.
CONFORMITÉ
ANSI C, SVID 3, ISO 9899. Il y a une inclusion stricte
entre les jeux de conversions fournies par ANSI (sans mar
que), celles indiquées par les Spécifications Single Unix
(marquées SU), celles fournies par le paquetage TimeZone
d'Olson (marquées TZ), et celles de la glibc (marquées
GNU), sauf pour %+ qui n'est pas supporté par glibc2. D'un
autre côté glibc2 offre plusieurs extensions. POSIX.1 ne
traite que les conversions ANSI C. POSIX.2 décrit à propos
de date(1) plusieurs extensions applicables également à
strftime.
VOIR AUSSI
date(1), time(2), ctime(3), setlocale(3), sprintf(3)
TRADUCTION
Christophe Blaess, 1997.
GNU 18 Mai 1999 4