strftime
, , wcsftime
_strftime_l
, ,_wcsftime_l
Mettent en forme une chaîne d’heure.
Syntaxe
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t _strftime_l(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr,
_locale_t locale
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
size_t _wcsftime_l(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr,
_locale_t locale
);
Paramètres
strDest
Chaîne de sortie.
maxsize
Taille de la mémoire tampon strDest
, mesurée en caractères (char
ou wchar_t
).
format
Chaîne de contrôle de format.
timeptr
Structure de données tm
.
locale
Paramètres régionaux à utiliser.
Valeur retournée
strftime
retourne le nombre de caractères placés dans strDest
et wcsftime
retourne le nombre correspondant de caractères larges.
Si le nombre total de caractères, caractère Null de fin inclus, est supérieur à maxsize
, strftime
et wcsftime
retournent 0 et le contenu de strDest
est indéterminé.
Le nombre de caractères dans strDest
est égal au nombre de caractères littérals dans format
, ainsi que tous les caractères pouvant être ajoutés format
via des codes de mise en forme. La valeur null de fin d’une chaîne n’est pas comptabilisée dans la valeur de retour.
Notes
Les fonctions et wcsftime
formatent la tm
valeur de temps en timeptr
fonction de l’argument fourni format
et stockent le résultat dans la mémoire tamponstrDest
.strftime
Tout au plus, des caractères maxsize
sont placés dans la chaîne. Pour obtenir une description des champs de la timeptr
structure, consultez asctime
. wcsftime
est l’équivalent en caractères larges de strftime
; son argument de pointeur de chaîne pointe vers une chaîne de caractères larges. Ces fonctions se comportent sinon de façon identique.
Cette fonction valide ses paramètres. Si strDest
, format
ou timeptr
est un pointeur Null, ou si la tm
structure de données traitée par timeptr
n’est pas valide (par exemple, si elle contient des valeurs hors plage pour l’heure ou la date), ou si la format
chaîne contient un code de mise en forme non valide, le gestionnaire de paramètres non valide est appelé, comme décrit dans validation de paramètre. Si l’exécution est autorisée à se poursuivre, la fonction retourne 0 et définit errno
sur EINVAL
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
L’argument format
se compose d’un ou plusieurs codes ; comme dans printf
, les codes de mise en forme sont précédés d’un signe de pourcentage (%
). Les caractères qui ne commencent %
pas par sont copiés sans modification.strDest
La catégorie LC_TIME
des paramètres régionaux actifs affecte la mise en forme de sortie de strftime
. (Pour plus d’informations sur LC_TIME
, consultez setlocale
.) Les strftime
fonctions et wcsftime
les fonctions utilisent les paramètres régionaux actuellement définis. Les _strftime_l
versions et _wcsftime_l
les versions de ces fonctions sont identiques, sauf qu’elles prennent les paramètres régionaux comme paramètre et utilisent cela au lieu des paramètres régionaux actuellement définis. Pour plus d’informations, consultez Locale.
Les strftime
fonctions prennent en charge ces codes de mise en forme :
Code | Chaîne de remplacement |
---|---|
%a |
Nom abrégé de la semaine dans les paramètres régionaux |
%A |
Nom complet de la semaine dans les paramètres régionaux |
%b |
Nom du mois abrégé dans les paramètres régionaux |
%B |
Nom du mois complet dans les paramètres régionaux |
%c |
Représentation de la date et de l’heure correspondant aux paramètres régionaux |
%C |
Année divisée par 100 et tronquée en entier, sous forme de nombre décimal (00−99) |
%d |
Jour du mois sous forme de nombre décimal (01 - 31) |
%D |
Équivaut à %m/%d/%y . |
%e |
Jour du mois sous la forme d’un nombre décimal (1 à 31), où les chiffres uniques sont précédés d’un espace |
%F |
Équivaut à %Y-%m-%d . |
%g |
Les 2 derniers chiffres de l’année iso 8601 par semaine sous la forme d’un nombre décimal (00 - 99) |
%G |
Année de la semaine ISO 8601 sous forme de nombre décimal |
%h |
Nom de mois abrégé (équivalent à %b ) |
%H |
Heure au format 24 heures (00 - 23) |
%I |
Heure au format 12 heures (01 - 12) |
%j |
Jour de l’année sous forme de nombre décimal (001 - 366) |
%m |
Mois sous forme de nombre décimal (01 - 12) |
%M |
Minute sous forme de nombre décimal (00 - 59) |
%n |
Caractère de nouvelle ligne (\n ) |
%p |
Indicateur A.M./P.M. des paramètres régionaux pour l’horloge de 12 heures |
%r |
Heure d’horloge de 12 heures des paramètres régionaux |
%R |
Équivaut à %H:%M . |
%S |
Deuxième comme nombre décimal (00 - 59) |
%t |
Caractère d’onglet horizontal (\t ) |
%T |
Équivalent à %H:%M:%S , le format de temps ISO 8601 |
%u |
ISO 8601 jour de semaine sous la forme d’un nombre décimal (1 - 7 ; Lundi est 1) |
%U |
Numéro de semaine de l’année sous forme de nombre décimal (00 - 53), où le premier dimanche est le premier jour de la semaine 1 |
%V |
Numéro de semaine ISO 8601 sous forme de nombre décimal (00 - 53) |
%w |
Jour de la semaine sous forme de nombre décimal (0 - 6 ; Dimanche est 0) |
%W |
Numéro de semaine de l’année sous forme de nombre décimal (00 - 53), où le premier lundi est le premier jour de la semaine 1 |
%x |
Représentation de date pour les paramètres régionaux |
%X |
Représentation temporelle des paramètres régionaux |
%y |
Année sans siècle, comme nombre décimal (00 - 99) |
%Y |
Année avec le siècle, sous forme de nombre décimal |
%z |
Décalage par rapport à UTC au format ISO 8601 ; aucun caractère si le fuseau horaire est inconnu |
%Z |
Le nom du fuseau horaire ou l’abréviation du fuseau horaire des paramètres régionaux, en fonction des paramètres du Registre ; aucun caractère si le fuseau horaire est inconnu |
%% |
Signe de pourcentage |
Comme dans la fonction printf
, l’indicateur #
peut servir de préfixe à n’importe quel code de mise en forme. Dans ce cas, la signification du code de format change comme suit.
Code du format | Signification |
---|---|
%#a , %#A , , %#b , %#g %#B , %#G , %#h %#n %#Z %#X %#u %#z %#p %#t %#w ,%#% |
L’indicateur # est ignoré. |
%#c |
Représentation de date et d’heure longue, appropriée pour les paramètres régionaux. Par exemple : « Mardi 14 mars 1995, 12:41:29 ». |
%#x |
Représentation de date longue, appropriée aux paramètres régionaux. Par exemple : « Mardi 14 mars 1995 ». |
%#d , %#D , , %#e , , %#I %#m %#T %#S %#U %#R %#y %#j %#W %#M %#V %#r %#F %#H %#Y |
Supprimez les zéros ou espaces non significatifs (le cas échéant). |
La semaine ISO 8601 et l’année hebdomadaire produite par %V
, %g
et %G
, utilise une semaine qui commence le lundi. La semaine 1 est la semaine qui contient le quatrième jour de janvier, qui est la première semaine qui comprend au moins quatre jours de l’année. Si le premier lundi de l’année est le 2ème, le 3ème ou le 4ème, les jours précédents font partie de la dernière semaine de l’année précédente. Pour ces jours, %V
est remplacé par 53, et les deux %g
sont %G
remplacés par les chiffres de l’année précédente.
Remarque
Lorsque vous utilisez l’une des strftime
fonctions avec un tm
pointeur retourné gmtime
, les valeurs imprimées via les %Z
spécificateurs ne %z
sont pas exactes. Cela est dû au fait que le tm
struct tel que spécifié par la norme C ne contient pas les informations relatives au nom du fuseau horaire ni au décalage. Au lieu de cela, les informations de fuseau horaire sont renseignées via les variables globales et _dstbias
._timezone
Spécifications
Routine | En-tête requis |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> ou <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> ou <wchar.h> |
Les _strftime_l
fonctions et _wcsftime_l
les fonctions sont spécifiques à Microsoft. Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Consultez l’exemple pour time
.
Voir aussi
Paramètres régionaux
Gestion des horaires
Manipulation de chaînes
localeconv
setlocale
, _wsetlocale
strcoll
, fonctions
strxfrm
, , wcsxfrm
_strxfrm_l
, ,_wcsxfrm_l