Strftime en C sous windows

Signaler
Messages postés
5
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
14 avril 2005
-
Messages postés
5
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
14 avril 2005
-
Bonjour,



Je souhaiterai utiliser la fonction strftime de C pour formater une
date mais autant la fonction effectue ce que je veux sous unix, autant
ça foire sous windows.

strftime(dateAAMMJJ, 9*sizeof(char), "%0y-%0m-%0d", date) ;



Résultat sous unix : 05-03-22


Résultat sous windows : y-m-d



...

Merci d'avance !

Thomas
A voir également:

5 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Essaye sans les '0' :
"%y-%m-%d"
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

MSDN:


The format argument consists of one or more codes; as in printf, the formatting codes are preceded by a percent sign (%). Characters that do not begin with % are copied unchanged to strDest. The LC_TIME category of the current locale affects the output formatting of strftime.(For more information on LC_TIME, see [mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1036\vccore.chm::/html/_crt_setlocale.2c_._wsetlocale.htm setlocale].) The formatting codes for strftime are listed below:


%a


Abbreviated weekday name


%A


Full weekday name


%b


Abbreviated month name


%B


Full month name


%c


Date and time representation appropriate for locale


%d


Day of month as decimal number (01 – 31)


%H


Hour in 24-hour format (00 – 23)


%I


Hour in 12-hour format (01 – 12)


%j


Day of year as decimal number (001 – 366)


%m


Month as decimal number (01 – 12)


%M


Minute as decimal number (00 – 59)


%p


Current locale’s A.M./P.M. indicator for 12-hour clock


%S


Second as decimal number (00 – 59)


%U


Week of year as decimal number, with Sunday as first day of week (00 – 53)


%w


Weekday as decimal number (0 – 6; Sunday is 0)


%W


Week of year as decimal number, with Monday as first day of week (00 – 53)


%x


Date representation for current locale


%X


Time representation for current locale


%y


Year without century, as decimal number (00 – 99)


%Y


Year with century, as decimal number


%z, %Z


Time-zone name or abbreviation; no characters if time zone is unknown


%%


Percent sign


As in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.


Format Code,
Meaning,
----

%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%,
# flag is ignored.,
----

%#c,
Long date and time representation, appropriate for current locale. For example: “Tuesday, March 14, 1995, 12:41:29”.,
----

%#x,
Long date representation, appropriate to current locale. For example: “Tuesday, March 14, 1995”.,
----

%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y,
Remove leading zeros (if any).

~(.:: NitRic ::.)~
Messages postés
5
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
14 avril 2005

> Essaye sans les '0' :
> "%y-%m-%d"



Et si je veux que chaque valeur (jour, mois, année) soit sur 2 caractères ?



Thomas
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Si tu regarde la doc que NitRic a mis il y a :
%d
Day of month as decimal number (01 – 31)

=> la date sera sur 2 chiffres. Pour virer les '0' inutiles de la date c'est %#d.
Messages postés
5
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
14 avril 2005

Désolé pour la question précédente, j'ai du oublier mes yeux...

Merci beaucoup.

Thomas