Namespaces
Variants

wcsftime

From cppreference.net
Défini dans l'en-tête <wchar.h>
size_t wcsftime ( wchar_t * str, size_t count, const wchar_t * format, const struct tm * time ) ;
(depuis C95)

Convertit les informations de date et heure d'un temps calendaire donné time en une chaîne de caractères larges terminée par un caractère nul str selon la chaîne de format format . Jusqu'à count octets sont écrits.

Table des matières

Paramètres

str - pointeur vers le premier élément du tableau wchar_t pour la sortie
count - nombre maximum de caractères larges à écrire
format - pointeur vers une chaîne de caractères larges terminée par un caractère nul spécifiant le format de conversion

Chaîne de format

La chaîne de format est constituée de zéro ou plusieurs spécificateurs de conversion et de caractères ordinaires (à l'exception de % ). Tous les caractères ordinaires, y compris le caractère nul de fin, sont copiés dans la chaîne de sortie sans modification. Chaque spécification de conversion commence par le caractère % , éventuellement suivi du modificateur E ou O (ignoré s'il n'est pas pris en charge par les paramètres régionaux), suivi du caractère qui détermine le comportement du spécificateur. Les spécificateurs de format suivants sont disponibles :

Spécificateur
de conversion
Explication Champs utilisés
% écrit le caractère littéral % . La spécification de conversion complète doit être %% .
n
(C99)
écrit le caractère de nouvelle ligne
t
(C99)
écrit le caractère de tabulation horizontale
Année
Y écrit l' année sous forme de nombre décimal, par exemple 2017 tm_year
EY
(C99)
écrit l'année dans la représentation alternative, par exemple 平成23年 (année Heisei 23) au lieu de 2011年 (année 2011) dans les paramètres régionaux ja_JP tm_year
y écrit les 2 derniers chiffres de l' année sous forme de nombre décimal (plage [00,99] ) tm_year
Oy
(C99)
écrit les 2 derniers chiffres de l' année en utilisant le système numérique alternatif, par exemple 十一 au lieu de 11 dans la locale ja_JP tm_year
Ey
(C99)
écrit l' année comme décalage depuis la période du calendrier alternatif de la locale %EC (dépendant de la locale) tm_year
C
(C99)
écrit les 2 premiers chiffres de l'année sous forme de nombre décimal (plage [00,99] ) tm_year
EC
(C99)
écrit le nom de l'année de base (période) dans la représentation alternative de la locale, par exemple 平成 (ère Heisei) en ja_JP tm_year
G
(C99)
écrit l'année basée sur les semaines ISO 8601 , c'est-à-dire l'année qui contient la semaine spécifiée.

Dans la norme ISO 8601, les semaines commencent le lundi et la première semaine de l'année doit satisfaire aux exigences suivantes :

  • Inclut le 4 janvier
  • Inclut le premier jeudi de l'année
tm_year , tm_wday , tm_yday
g
(C99)
écrit les 2 derniers chiffres de l'année basée sur les semaines ISO 8601 , c'est-à-dire l'année qui contient la semaine spécifiée (plage [00,99] ).

Dans la norme ISO 8601, les semaines commencent le lundi et la première semaine de l'année doit satisfaire aux exigences suivantes :

  • Inclut le 4 janvier
  • Inclut le premier jeudi de l'année
tm_year , tm_wday , tm_yday
Mois
b écrit le nom abrégé du mois , par ex. Oct (dépendant des paramètres régionaux) tm_mon
Ob
(C23)
écrit le nom du mois abrégé dans la représentation alternative de la locale tm_mon
h
(C99)
synonyme de b tm_mon
B écrit le nom complet du mois , par ex. October (dépendant des paramètres régionaux) tm_mon
OB
(C23)
écrit le nom complet du mois approprié dans la représentation alternative de la locale tm_mon
m écrit le mois sous forme de nombre décimal (plage [01,12] ) tm_mon
Om
(C99)
écrit le mois en utilisant le système numérique alternatif, par exemple 十二 au lieu de 12 dans les paramètres régionaux ja_JP tm_mon
Semaine
U écrit la semaine de l'année sous forme de nombre décimal (le dimanche est le premier jour de la semaine) (plage [00,53] ) tm_year , tm_wday , tm_yday
OU
(C99)
écrit la semaine de l'année , comme par %U , en utilisant le système numérique alternatif, par exemple 五十二 au lieu de 52 dans les paramètres régionaux ja_JP tm_year , tm_wday , tm_yday
W écrit la semaine de l'année sous forme de nombre décimal (le lundi est le premier jour de la semaine) (plage [00,53] ) tm_year , tm_wday , tm_yday
OW
(C99)
écrit la semaine de l'année , comme par %W , en utilisant le système numérique alternatif, par exemple 五十二 au lieu de 52 dans les paramètres régionaux ja_JP tm_year , tm_wday , tm_yday
V
(C99)
écrit la semaine ISO 8601 de l'année (plage [01,53] ).

Dans la norme ISO 8601, les semaines commencent le lundi et la première semaine de l'année doit satisfaire aux exigences suivantes :

  • Inclut le 4 janvier
  • Inclut le premier jeudi de l'année
tm_year , tm_wday , tm_yday
OV
(C99)
écrit la semaine de l'année , comme avec %V , en utilisant le système numérique alternatif, par exemple 五十二 au lieu de 52 dans les locales ja_JP tm_year , tm_wday , tm_yday
Jour de l'année/mois
j écrit le jour de l'année sous forme de nombre décimal (plage [001,366] ) tm_yday
d écrit le jour du mois sous forme de nombre décimal (plage [01,31] ) tm_mday
Od
(C99)
écrit le jour du mois en base zéro en utilisant le système numérique alternatif, par exemple 二十七 au lieu de 27 dans la locale ja_JP

Un caractère unique est précédé d'un espace.

tm_mday
e
(C99)
écrit le jour du mois sous forme de nombre décimal (plage [1,31] ).

Un chiffre unique est précédé d'un espace.

tm_mday
Oe
(C99)
écrit le jour du mois en utilisant la numérotation un-basée et le système numérique alternatif, par exemple 二十七 au lieu de 27 dans les paramètres régionaux ja_JP

Un caractère unique est précédé d'un espace.

tm_mday
Jour de la semaine
a écrit le nom abrégé du jour de la semaine , par ex. Fri (dépendant des paramètres régionaux) tm_wday
A écrit le nom complet du jour de la semaine , par ex. Friday (dépendant des paramètres régionaux) tm_wday
w écrit le jour de la semaine sous forme de nombre décimal, où dimanche est 0 (plage [0-6] ) tm_wday
Ow
(C99)
écrit le jour de la semaine , où dimanche est 0 , en utilisant le système numérique alternatif, par exemple 二 au lieu de 2 dans les paramètres régionaux ja_JP tm_wday
u
(C99)
écrit le jour de la semaine sous forme de nombre décimal, où lundi est 1 (format ISO 8601) (plage [1-7] ) tm_wday
Ou
(C99)
écrit jour de la semaine , où lundi est 1 , en utilisant le système numérique alternatif, par exemple 二 au lieu de 2 dans la locale ja_JP tm_wday
Heure, minute, seconde
H écrit l'heure sous forme de nombre décimal, horloge 24 heures (plage [00-23] ) tm_hour
OH
(C99)
écrit l'heure au format 24 heures en utilisant le système numérique alternatif, par exemple 十八 au lieu de 18 dans la locale ja_JP tm_hour
I écrit hour sous forme de nombre décimal, horloge 12 heures (plage [01,12] ) tm_hour
OI
(C99)
écrit l'heure à partir de l'horloge 12 heures en utilisant le système numérique alternatif, par exemple 六 au lieu de 06 dans les paramètres régionaux ja_JP tm_hour
M écrit la minute sous forme de nombre décimal (plage [00,59] ) tm_min
OM
(C99)
écrit la minute en utilisant le système numérique alternatif, par exemple 二十五 au lieu de 25 dans la locale ja_JP tm_min
S écrit la seconde sous forme de nombre décimal (plage [00,60] ) tm_sec
OS
(C99)
écrit second en utilisant le système numérique alternatif, par exemple 二十四 au lieu de 24 dans la locale ja_JP tm_sec
Autre
c écrit la chaîne standard de date et heure , par exemple Sun Oct 17 04:41:13 2010 (dépendant des paramètres régionaux) tous
Ec
(C99)
écrit une chaîne de date et heure alternative , par exemple en utilisant 平成23年 (année Heisei 23) au lieu de 2011年 (année 2011) dans la locale ja_JP tous
x écrit la représentation de date localisée (dépendante de la locale) tous
Ex
(C99)
écrit une représentation de date alternative , par exemple en utilisant 平成23年 (année Heisei 23) au lieu de 2011年 (année 2011) dans les paramètres régionaux ja_JP tous
X écrit la représentation horaire localisée , par exemple 18:40:20 ou 6:40:20 PM (dépendant des paramètres régionaux) tous
EX
(C99)
écrit une représentation alternative de l'heure (dépendante de la locale) toutes
D
(C99)
équivalent à "%m/%d/%y" tm_mon , tm_mday , tm_year
F
(C99)
équivalent à "%Y-%m-%d" (le format de date ISO 8601) tm_mon , tm_mday , tm_year
r
(C99)
écrit l'heure au format 12 heures localisé (dépendant des paramètres régionaux) tm_hour , tm_min , tm_sec
R
(C99)
équivalent à "%H:%M" tm_hour , tm_min
T
(C99)
équivalent à "%H:%M:%S" (le format horaire ISO 8601) tm_hour , tm_min , tm_sec
p écrit a.m. ou p.m. (dépendant de la localisation) tm_hour
z
(C99)
écrit le décalage horaire par rapport à UTC au format ISO 8601 (par exemple -0430 ), ou aucun caractère si les informations de fuseau horaire ne sont pas disponibles tm_isdst
Z écrit le nom ou l'abréviation du fuseau horaire dépendant de la locale , ou aucun caractère si les informations de fuseau horaire ne sont pas disponibles tm_isdst

Valeur de retour

Nombre de caractères larges écrits dans le tableau de caractères larges pointé par str sans inclure le caractère de fin L ' \0 ' en cas de succès. Si count a été atteint avant que la chaîne entière puisse être stockée, 0 est retourné et le contenu est indéfini.

Exemple

#include <locale.h>
#include <stdio.h>
#include <time.h>
#include <wchar.h>
int main(void)
{
    wchar_t buff[40];
    struct tm my_time =
    {
        .tm_year = 112, // = année 2012
        .tm_mon = 9,    // = 10ème mois
        .tm_mday = 9,   // = 9ème jour
        .tm_hour = 8,   // = 8 heures
        .tm_min = 10,   // = 10 minutes
        .tm_sec = 20    // = 20 secondes
    };
    if (wcsftime(buff, sizeof buff, L"%A %c", &my_time))
        printf("%ls\n", buff);
    else
        puts("wcsftime failed");
    setlocale(LC_ALL, "ja_JP.utf8");
    if (wcsftime(buff, sizeof buff, L"%A %c", &my_time))
        printf("%ls\n", buff);
    else
        puts("wcsftime failed");
}

Sortie :

Sunday Sun Oct  9 08:10:20 2012
日曜日 2012年10月09日 08時10分20秒

Références

  • Norme C23 (ISO/IEC 9899:2024):
  • 7.29.5.1 La fonction wcsftime (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.29.5.1 La fonction wcsftime (p : 230-231)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.29.5.1 La fonction wcsftime (p: 439-440)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.24.5.1 La fonction wcsftime (p : 385-386)

Voir aussi

convertit un objet tm en représentation textuelle personnalisée
(fonction)
Documentation C++ pour wcsftime