Share via


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, formatou 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 routine de texte générique

TCHAR.H Routine _UNICODE et _MBCS non défini _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, %#B, %#g, %#G, %#h, %#n, %#p, %#t, %#u, %#w, %#X, %#z, %#Z, %#% 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, %#F, %#H, %#I, %#j, %#m, %#M, %#r, %#R, %#S, %#T, %#U, %#V, %#W, %#y, %#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, %get %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îne
localeconv
setlocale, _wsetlocale
strcoll, fonctions
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l